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");
}
}
}
}