Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30389
  • 博文数量: 9
  • 博客积分: 233
  • 博客等级: 二等列兵
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-30 14:56
文章分类
文章存档

2012年(9)

我的朋友
最近访客

分类: C/C++

2012-05-05 16:40:16

 程序思想

这是一个相对复杂的问题,要考虑闰年和非闰年,各个月份的天数不一样。按照数学的进制思想,构建一个month的进制来解决问题。

点击(此处)折叠或打开

  1. #include
  2. int year(int y);
  3. int main(void)
  4. {
  5. int month[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
  6. 31,29,31,30,31,30,31,31,30,31,30,31};
  7. int N;
  8. int i;
  9. int y=2013,m=1,d=1;
  10. scanf("%d",&N);
  11. N--;
  12. for(i=0;i
  13. {
  14. d++;
  15. if(d>month[year(y)][m-1])
  16. {
  17. d=1;
  18. m++;
  19. }
  20. if(m>12)
  21. {
  22. d=1;
  23. m=1;
  24. y++;
  25. }
  26. }
  27. printf("%d-",y);
  28. if(m<10)
  29. {
  30. printf("0%d-",m);
  31. }
  32. else
  33. {
  34. printf("%d-",m);
  35. }
  36. if(d<10)
  37. {
  38. printf("0%d\n",d);
  39. }
  40. else
  41. {
  42. printf("%d\n",d);
  43. }
  44. return 0;
  45. }
  46. int year(int y)
  47. {
  48. if((y%4==0&&y%100!=0)||(y%400==0))
  49. {
  50. return 1;
  51. }
  52. else
  53. {
  54. return 0;
  55. }
  56. }

附录
阅读(916) | 评论(0) | 转发(0) |
0

上一篇:C++之洗澡

下一篇:C++可怜的蚂蚁

给主人留下些什么吧!~~