程序思想
这是一个相对复杂的问题,要考虑闰年和非闰年,各个月份的天数不一样。按照数学的进制思想,构建一个month的进制来解决问题。
- #include
- int year(int y);
- int main(void)
- {
- int month[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};
- int N;
- int i;
- int y=2013,m=1,d=1;
- scanf("%d",&N);
- N--;
- for(i=0;i
- {
- d++;
- if(d>month[year(y)][m-1])
- {
- d=1;
- m++;
- }
- if(m>12)
- {
- d=1;
- m=1;
- y++;
- }
- }
- printf("%d-",y);
- if(m<10)
- {
- printf("0%d-",m);
- }
- else
- {
- printf("%d-",m);
- }
- if(d<10)
- {
- printf("0%d\n",d);
- }
- else
- {
- printf("%d\n",d);
- }
- return 0;
- }
- int year(int y)
- {
- if((y%4==0&&y%100!=0)||(y%400==0))
- {
- return 1;
- }
- else
- {
- return 0;
- }
- }
附录
阅读(916) | 评论(0) | 转发(0) |