A 2020-9-3

题目描述

今天是2020年9月3日,n天之后是什么日期呢?

输入描述

一个正整数n(n≤1000)

输出描述

n天之后的日期

样例输入

1

样例输出

2020-9-4

JAVA

import java.util.Scanner;

public class Main {

    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int year=2020;
        int mon=9;
        int day=3;
        int n=scanner.nextInt();
        while(n!=0) {
            day+=1;
            n--;
            if (year%400==0||(year%100==0&&year%4==0)) {//润年
                if (mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) {
                    if (day==32) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
                else if (mon==4||mon==6||mon==9||mon==11) {
                    if (day==31) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
                else if (mon==2) {
                    if (day==30) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
            }
            else {//平年
                if (mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) {
                    if (day==32) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
                else if (mon==4||mon==6||mon==9||mon==11) {
                    if (day==31) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
                else if (mon==2) {
                    if (day==29) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
            }
        }
        
        System.out.println(year+"-"+mon+"-"+day);
    }
}

B 还是2020-9-3

题目描述

现在是2020年9月3日 9:00,n秒之后是什么日期呢?

输入描述

一个正整数n(n≤1e9)

输出描述

n秒之后的日期

样例输入

86400

样例输出

2020-9-4

提示

注意n的范围

JAVA

import java.util.Scanner;

public class Main {

    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int year=2020;
        int mon=9;
        int day=3;
        long shi=9;
        long fen=0;
        long miao=0;
        long n=scanner.nextLong();
        while(n!=0) {
            miao++;
            n--;
            if (miao==60) {
                miao=0;
                fen++;
            }
            if (fen==60) {
                fen=0;
                shi++;    
            }
            if (shi==24) {
                shi=0;
                day++;
            }

            if (year%400==0||(year%100!=0&&year%4==0)) {//润年
                if (mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) {
                    if (day==32) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
                else if (mon==4||mon==6||mon==9||mon==11) {
                    if (day==31) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
                else if (mon==2) {
                    if (day==30) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
            }
            else {//平年
                if (mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) {
                    if (day==32) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
                else if (mon==4||mon==6||mon==9||mon==11) {
                    if (day==31) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
                else if (mon==2) {
                    if (day==29) {
                        day=1;
                        mon++;
                        if (mon==13) {
                            year++;
                            mon=1;
                        }
                    }
                }
            }
        }
        System.out.println(year+"-"+mon+"-"+day);
    }
}

C cym的心事

题目描述

cym在坐火车回家时遇见了一个漂亮姐姐,但他害羞不好意思去要qq号。机智的他千方百计之下得到了一些关于小姐姐qq号的字符,但他到家后倒头就睡了,现在请你帮他判断一下这些字符组合起来是不是小姐姐的qq,总所周知qq号只有数字没有其他字符,如果这些事qq号则输出它们,不是则输出"kuai qu yao q q !"。

输入描述

一些以空格分开的字符

输出描述

如果是qq号则输出这个qq号,字符之间没有空格,如果不是则输出"kuai qu yao q q !",没有引号。

样例输入

2 4 6 9 1 3 4 2 3 1

样例输出

2469134231

提示

不知道会输入多少个可以用while(cin>>a){循环内容}

JAVA

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        ArrayList<String> list =new ArrayList<>();
        int count=0;
        String str2 = "";
        while(scanner.hasNext()) {
            String string =scanner.next();
            string.split(" ");
            for(int i=0;i<string.length();i++) {
                if (string.charAt(i)!='0'&&
                    string.charAt(i)!='1'&&
                    string.charAt(i)!='2'&&
                    string.charAt(i)!='3'&&
                    string.charAt(i)!='4'&&
                    string.charAt(i)!='5'&&
                    string.charAt(i)!='6'&&
                    string.charAt(i)!='7'&&
                    string.charAt(i)!='8'&&
                    string.charAt(i)!='9') {
                    count++;
                }    
                else {
                    str2+=string.charAt(i);
                }
            }
        }
        if (count!=0) {
            System.out.print("kuai qu yao q q !");
        }
        else {
            System.out.print(str2);
        }
    
    }
}

D 峻峻的信仰

题目描述

cyj十分信仰神学,他相信每个人一出生代表着一个数,而白头偕老的两个人都必须满足以下条件: 一个数的所有真约数(即不是自身的约数)之和为另一半的数。 比如220和284就可以匹配,220:1+2+4+5+10+11+20+22+44+55+110=284;284:1+2+4+71+142=220。

输入描述

输入数据第一行包含一个数M,接下有M行,每行一个实例,包含两个整数A,B; 其中 0 <=A,B <=600000 。

输出描述

对于每个测试实例,如果A和B可以匹配的话输出YES,否则输出NO。

样例输入

2
220 284
100 200

样例输出

YES
NO

JAVA

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        for(int i=0;i<n;i++) {
            int []a=new int[2];
            a[0]=scanner.nextInt();
            a[1]=scanner.nextInt();
            ArrayList<Integer> list=new ArrayList<>();
            for(int j=2;j<a[0];j++) {
                
                for(int k=a[0];k>0;k--) {    
                    if (j*k==a[0]) {
                        list.add(j);
                        list.add(k);
                    }
                }
            }
            int sum=0;
            for(int q=0;q<list.size();q++) {
                sum+=list.get(q);
            }
            if ((sum/2)+1==a[1]) {
                System.out.println("YES");
            }
            else {
                System.out.println("NO");
            }
            
            
        }
    }
}

E 简单排序

题目描述

现有1组长度为n的乱序数字,我们想把这些数字按照从大到小的顺序输出。

输入描述

输入共两行。第一行一个正整数n,表示数组大小;第二行n个数为数组中元素ai。(1≤n≤1e5,1≤ai≤1e9)

输出描述

每组的数字由大到小输出

样例输入

5
1 4 5 6 3

样例输出

6 5 4 3 1

提示

注意输出结尾没有空格

JAVA

import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class Main {

    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        Integer[]a =new Integer[n];
        for(int i=0;i<n;i++) {
            a[i]=scanner.nextInt();
        }
        Arrays.sort(a,Collections.reverseOrder());
        for(int i=0;i<n;i++) {
            if (i==0) {
                System.out.print(a[i]);
            }
            else {
                System.out.print(" "+a[i]);
            }
            
        }
        
    }
}

F Zero Puzzling

题目描述

There is a matrix with m rows and n columns. An element of the matrix has at most four adjacent elements(up,down,left,right). You can add a same number to a pair of adjacent elements of the matrix. By doing this operation repeatedly, can you make the matrix zero?

输入描述

A line contains m and n indicating the rows and columns of the matrix(0<m,n<5)
Each of the following m lines contains n integers(-10^6<=each integer<=10^6)
Input is terminated by one line contains two zeros.

输出描述

If the matrix can be converted into zero,output "Yes" on a line otherwise output "No" on a line.

样例输入

2 2
1 1
1 0

2 2
0 0
1 1

0 0

样例输出

No
Yes

提示

染色问题

JAVA

import java.util.Scanner;

//矩阵归零
public class Main {
public static void main(String [] args){
    Scanner scanner=new Scanner(System.in);
    while(scanner.hasNextInt()){
        int m=scanner.nextInt();
        int n=scanner.nextInt();
        if(m==0||n==0){
             break;
        }
        int ou=0,ji=0;
        for(int i=1;i<=m;i++){
           for(int j=1;j<=n;j++){
               int m1=scanner.nextInt();
               if((i+j)%2==0) {
                   ou+=m1;
               }
               else {
                   ji+=m1;                            
               }
           }
          } 
        if(ou==ji) {
            System.out.println("Yes");
        }
        else{
            System.out.println("No");
        }
      
    }
}
}
最后修改:2022 年 10 月 02 日
如果觉得我的文章对你有用,请随意赞赏