蓝桥杯——java(b组)省赛
2023-02-18 16:37:40 时间
目录
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 诊断利器:Arthas
- Java的深拷贝和浅拷贝的区别
- Java中Elasticsearch 实现分页方式(三种方式)
- Java二分法
- Java求值策略
- Java锁
- Ansible PlayBook语法
- Ansible 通过Playbook部署LAMP
- InnoDB的锁(Locking)
- Ansible 通过PlayBook部署Zabbix
- 一次死锁(Dead Lock)分析
- 【matplotlib】3-绘制统计图形
- 融资
- 共享文件夹
- Docker Registry
- 编译LAMP部署动态网站环境
- 如何在本地Fabric release-2.2上快速make all成功
- 编译LNMP部署动态网站环境
- Odoo 基于Win10搭建基于Win10搭建odoo14开发环境搭建
- certutil 命令配合PS反弹后门