题解 | 打印日期
打印日期
https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b
#include <iostream> #include <stdio.h> using namespace std; // // void date(int m,int n,int dayOfmonth[]){ // int d,y,sum=0,i; // for(i=0;i<12;++i){ // sum+=dayOfmonth[i]; // if(sum>=n){ // y=i; // if(y>1){ // d=sum-n; // } // d=n; // break; // } // } // printf("%d-%d-%d\n",m,y,d); // // } int main() { int m, n, d, y; int dayOfmonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; while (scanf("%d%d", &m, &n) != EOF) { bool isLeap; int sum = 0, i; isLeap = m % 400 == 0 || m % 100 != 0 && m % 4 == 0; if (isLeap) { dayOfmonth[2] = 29; } //以下可以用date函数代替 for (i = 0; i <=12; ++i) { sum += dayOfmonth[i]; if (sum >= n) { y = i; if (y > 1) { sum = sum - dayOfmonth[i]; d = n - sum; } else { d = n; } break; } } if (d < 10) { if (y < 10) { printf("%d-0%d-0%d\n", m, y, d); } else { printf("%d-%d-0%d\n", m, y, d); } } else { if (y < 10) { printf("%d-0%d-%d\n", m, y, d); } else { printf("%d-%d-%d\n", m, y, d); } } //date(m,n,dayOfmonth); } }
王道机试指南 文章被收录于专栏
这个专栏是参考王道机试指南中相关的练习题哦