蓝桥杯——java(b组)省赛

        目录

        1.等差数列

解题思路:

源码附上:

 

 2.世纪末的星期天

解题思路 

常用的日历字段

源码附上: 

1.等差数列

等差数列

解题思路:

源码附上:

import java.util.Scanner;
import java.util.Arrays;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n=scan.nextInt(); //输入n个数
        int [] arr=new int[n];
        for(int i=0;i<arr.length;i++){
          arr[i]=scan.nextInt(); //输出 n里面的每一位数字
        }
        Arrays.sort(arr,0,n);//进行升序排列
        int d=0;
        for(int i=1;i<n-1;i++){  //求相邻两个数最大公约数
          d=gcd(d,arr[i+1]-arr[i]);
        }
        if(d==0){  //如果公差为0 直接输出 n
          System.out.println(n);
        }
        else{
          int len=(arr[n-1]-arr[0])/d+1;
          System.out.println(len);

        }





       
        
    }
    public static int gcd(int a,int b){ //求出两个数的最大公约数的方法
      return b==0?a:gcd(b,a%b);
    }
}

 2.世纪末的星期天

世纪末的星期

解题思路 

这里 我更推荐大家用java 里的 api进行解题 

也就是使用calendar 日期类

常用的日历字段

要注意的是:MONTH字段是从 0开始计数的 一定要注意哦(doge)

所以我们这里的MONTH对应的值应该是11

DAY_OF_WEEK中 星期天对应的是1,星期2对应的是2。星期六对应的是7

源码附上: 

import java.util.Scanner;
import java.util.Calendar;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        Calendar calendar=Calendar.getInstance(); //赋值给calendar
        for(int year=1999;year<10000;year+=100){ //题目要求必须是xx99年 也就是每次加一百年
        calendar.set(Calendar.YEAR,year);
        calendar.set(Calendar.MONTH,11);//MONTH字段是从0月开始计数的
        calendar.set(Calendar.DAY_OF_MONTH,31);
        if( calendar.get(Calendar.DAY_OF_WEEK)==1){ // 国外星期天对应的是1 星期一对应的是2 以此类推
          System.out.println(year);
            break;
        }


        }
        
    }
}

 以上两道题 就是 小王同学给友友们准备的两道 b组的题目 希望友友们在不到一个月的比赛里

争取拿奖哦!主要是为了锻炼自己

  


本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>