蓝桥杯——java(b组)省赛
Posted 学好c语言的小王同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯——java(b组)省赛相关的知识,希望对你有一定的参考价值。
目录
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组的题目 希望友友们在不到一个月的比赛里
争取拿奖哦!主要是为了锻炼自己
以上是关于蓝桥杯——java(b组)省赛的主要内容,如果未能解决你的问题,请参考以下文章
算法笔记_108:第四届蓝桥杯软件类省赛真题(JAVA软件开发本科A组)试题解答