*****
我写的 又长又臭的。。。还过不了。
import java.util.Scanner;
public class 蓝桥杯2015初赛星系炸弹 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int year = sc.nextInt();
int month = sc.nextInt();
int day = sc.nextInt();
int n = sc.nextInt();
int sum = 0;
int [] a = {0,31,28,31,30,31,30,31,31,30,31,30,31};
// System.out.println(a[11]);
int y = 365;
boolean ok = false;
for(int i=1000;i<year;i++) {
if(((i%4==0)&&(i%100!=0))||(i%400==0)) {
sum+=366;
}else sum+=365;
}
for(int i=0;i<month;i++) {
sum+=a[i];
}
sum+=day;
sum+=n;
year =1000;month=0;day=0;
for(int i=1000;sum>=364;i++) {
if(((i%4==0)&&(i%100!=0))||(i%400==0)) {
sum-=366;
}else sum-=365;
year++;
}
if(((year%4==0)&&(year%100!=0))||(year%400==0)&&sum>=60) {
a[2]=29;
}
for(int i=1;i<12;i++) {
a[i+1]+=a[i];
}
for(int i=11;i>=0;i--) {
if(sum>a[i]) {
sum-=a[i];
month+=(i+1);
day = sum;
break;
}
}
String mon = "";
String da = "";
if(month<=9) mon = "0"+String.valueOf(month);
else mon = String.valueOf(month);
if(day<=9) da = "0"+String.valueOf(day);
else da = String.valueOf(day);
System.out.println(year+"-"+mon+"-"+da);
}
}
}
看了别人写的 又写了一个。。。。
import java.util.Scanner;
public class 蓝桥杯2015初赛星系炸弹3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int [] day = {0,31,28,31,30,31,30,31,31,30,31,30,31};
while(sc.hasNext()) {
int y = sc.nextInt();
int m = sc.nextInt();
int d = sc.nextInt();
int n = sc.nextInt();
for(int i=0;i<n;i++){
if((y%4==0&&y%100!=0)||y%400==0) day[2]=29;
else day[2]=28;
d++;
if(d==day[m]+1){
d=1;
m++;
}
if(m==13){
m=1;
y++;
}
}
System.out.println(String.format("%04d-%02d-%02d", y,m,d));
}
}
}