コンテンツ
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を使用することをお勧めします
つまり、カレンダーの日付クラスを使用することです
一般的に使用されるカレンダーフィールド
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; } } } }
上記の2つの質問は、Xiao Wangが友達のために用意した2つのグループBの質問です。友達が、1か月以内にコンテストに参加することを願っています。
賞のために戦おう!主に運動用