1 条题解
-
0
C :
#include<stdio.h> int main() { int n,m,i,j,k,s,p,q,N,a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; while(~scanf("%d",&n)) { s=0;p=0; if(n<79)for(i=0;i<3;++i) { for(j=1;j<=a[i];++j) { s++; if(s>=79-n) { printf("2014 %d %d %d\n",i+1,j,(4-n%7+7)%7==0?7:(4-n%7+7)%7); p=1; break; } }if(p)break; } else { m=q=n-79; for(i=2013;i>=0;--i) { if(i%4==0&&i%100||i%400==0)a[1]=29; else a[1]=28; N=a[1]==29?366:365; if(q>N){q-=N;continue;} for(j=0;j<12;++j) { for(k=1;k<=a[j];++k) { s++; if(s>=N-q) { printf("%d %d %d %d\n",i,j+1,k,(2-m%7+7)%7==0?7:(2-m%7+7)%7); p=1;break; } }if(p)break; }if(p)break; } } } return 0; }C++ :
#include<iostream> using namespace std; bool pan(int n) { if((n % 4 == 0 && n % 100 != 0) || n % 400 == 0) return true; return false; } int main() { int n, t1, y1, m1, i, d, x; int a[2][12] = {{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; while(cin >> n) { y1 = 2014; t1 = n; while(t1 >= 365) { if(pan(y1) && t1 >= 366) { y1--; t1 -= 366; } else if(!pan(y1) && t1 >= 365) { y1--; t1 -= 365; } } m1 = 3; for(i = 1; t1 >= 28; i--) { if(i < 0) { y1--; i = 11; } if(pan(y1)) { t1 -= a[1][i]; m1 = i + 1; } else { t1 -= a[0][i]; m1 = i + 1; } } if(t1 < 19) { d = 20 - t1; } else { t1 -= 20; m1--; if(m1 < 1) m1 = 12; if(pan(y1)) { d = a[1][m1 - 1] - t1; } else { d = a[0][m1 - 1] - t1; } } x = n % 7; if(x < 4) x = 4 - x; else x = 11 - x; cout << y1 << " " << m1 << " " << d << " " << x << endl; } }
- 1
信息
- ID
- 1154
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者