1.约数问题
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)
2.跑步训练
代码如下 :
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千米
一定要记住 直接提交 答案就好呢!!
以上就是我给友友们 准备的两道基础题
后面我会写更多类似的真题 哈
如果我的文章对友友们有帮助的话
麻烦给个三连ba(狗头)
祝大家 新的一年offer拿到手软哈哈哈哈