第十二届蓝桥杯大赛软件赛决赛C/C++ 研究生组-完全日期
(图片来源网络,侵删)
solution1
#include #include using namespace std; int judge(int y){ if(y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) return 1; return 0; } int main(){ int h[13][2] = {{0,0}, {31, 31}, {28, 29}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31,31}}; int d[3] = {2001, 1, 1}, count = 0, t, leap, sum, date[3], sqr; while(!(d[0] == 2021 && d[1] == 12 && d[2] == 31)){ sum = 0; for(int i = 0; i h[d[1]][leap]){ d[2] = 1; d[1]++; } if(d[1] > 12){ d[1] = 1; d[0]++; } } printf("%d", count); return 0; }
solution2
#include #include int main(){ int h[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int count = 0, y, m, d, sum, sqr; for(int i = 1; i sum = 0; if((i + 2000) % 400 == 0 || ((i + 2000) % 4 == 0 && (i + 2000) % 100 != 0)) h[2] = 29; else h[2] = 28; for(int j = 1; j for(int k = 1; k y = 2 + i % 10 + i / 10; m = j % 10 + j / 10; d = k % 10 + k / 10; sum = y + m + d; sqr = sqrt(sum); if(sum == sqr * sqr) count++; } } } printf("%d", count); return 0; }
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...