public class Main {
// 对于一个整数,能整除这个整数的数称为这个数的约数。
// 例如:1, 2, 3, 6 都是 6 的约数。
// 请问 78120 有多少个约数
public static void main(String[] args) {
int yueshu=0;
for(int i=1;i<=78120;i++){
if(78120%i==0){
yueshu++;
}
}
System.out.println("78120有"+yueshu+"个约数");
}
}
这道题比较基础 直接遍历 然后判断条件就行了 记住 !! 一定只能提交答案 不需要提交源码(doge)
代码如下 :
public class 跑步 {
static int []week={6,7,1,2,3,4,5};//一月一号星期六,依次往后推
static int []months={0,31,28,31,30,31,30,31,31,30,31,30,31};
public static void main(String[] args) {
int ans=0;
int sumday=0;//总天数.用来判断星期几
//年
for(int year=2000;year<=2020;year++){
//判断是否是闰年
if(!check(year)){
//不是闰年就按正常的来
for(int month=1;month<=12;month++){
for(int day=1;day<=months[month];day++){
if(day==1||week[sumday%7]==1)
ans+=2;
else ans++;
sumday++;
}
}
}
//是闰年
else {
if(year==2020){//特判一下2020年因为今年就10个月跑
for (int month = 1; month <= 10; month++) {
if(month==10){
ans+=2;
break;
}
if (month != 2&&month<10) {
for (int day = 1; day <= months[month]; day++) {
if (day == 1 || week[sumday % 7] == 1)
ans += 2;
else ans++;
sumday++;
}
}
else if(month==2){
for (int day = 1; day <= 29; day++) {
if (day == 1 || week[sumday % 7] == 1)
ans += 2;
else ans++;
sumday++;
}
}
}
}
else {
for (int month = 1; month <= 12; month++) {
if (month != 2) {
for (int day = 1; day <= months[month]; day++) {
if (day == 1 || week[sumday % 7] == 1)
ans += 2;
else ans++;
sumday++;
}
} else {
for (int day = 1; day <= 29; day++) {
if (day == 1 || week[sumday % 7] == 1)
ans += 2;
else ans++;
sumday++;
}
}
}
}
}
}
System.out.println(ans);
}
static boolean check(int year){
if((year%4==0&&year%100!=0)||year%400==0){
return true;
}
else return false;
}
}
我更推荐下面这种 用api的做法 比较好
代码如下:
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
start.set(2000, Calendar.JANUARY, 1);
end.set(2020, Calendar.OCTOBER, 1);
int res = 0;
do {
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(start.getTime()));
start.add(Calendar.HOUR, 24);
res += start.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY || start.get(Calendar.DAY_OF_MONTH) == 1 ? 2 : 1;
} while (start.getTimeInMillis() < end.getTimeInMillis());
System.out.println(res);
}
}
答案是 8878千米
一定要记住 直接提交 答案就好呢!!
以上就是我给友友们 准备的两道基础题
后面我会写更多类似的真题 哈
祝大家 新的一年offer拿到手软哈哈哈哈