0


第十一届蓝桥杯——JAVA组真题

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拿到手软哈哈哈哈**

标签: 蓝桥杯 java 算法

本文转载自: https://blog.csdn.net/weixin_59796310/article/details/122894065
版权归原作者 学好c语言的小王同学 所有, 如有侵权,请联系我们删除。

“第十一届蓝桥杯&mdash;&mdash;JAVA组真题”的评论:

还没有评论