**
回文日程序设计
**
害,今天是2020.02.28周五,因为疫情,所以我在家里上网课。这不面向对象程序设计布置的第一个代码作业来咯~拖了这么久2333我太懒辽,一条废鱼呜。
废话不多说进入程序正题辽~
要求回顾:
什么是回文?
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。
正着念跟倒着念相同!
回文日、回文句、回文诗、回文数
20200202 正月初九 星期日
无论从左往右读,还是从右往左读,都是同一个数,称这样的数为“回文数”!
回文句:
院满春光春满院;
门盈喜气喜盈门!
七绝*八字回文诗
花如梦景影如纱,
景影如纱梦见他。
他见梦纱如影景,
纱如影景梦如花。
程序设计:编程实现:2000-2999这一千年中,共有多少个回文日。
代码:
C语言版:
#include <stdio.h>
#include<stdlib.h>
int main()
{
printf("欢迎使用回文日查询。by SDNU咸鱼小十七酱ovo\n");
int year, month, day, y, ymd;
int is_cycle;
int count = 0;
for (year = 2000; year < 2999; year++)
{
y = year;
month = y % 100;
month = (month % 10) * 10 + month / 10;
day = y / 100;
day = (day % 10) * 10 + day / 10;
is_cycle = 0;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (day <= 31)
is_cycle = 1;
break;
case 4:
case 6:
case 9:
case 11:
if (day <= 30)
is_cycle = 1;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)//闰年也要考虑啊
{
if (day <= 29)
is_cycle = 1;
}
else
{
if (day <= 28)
is_cycle = 1;
}
break;
default: continue;
}
if (is_cycle)//如果可以构成回文日
{
y = year;
ymd = year;
while (y > 0)
{
ymd = ymd * 10 + y % 10;
y = y / 10;
}
printf("%d\n", ymd);
count++;
}
}
printf("一共有 %d 个回文日。\n", count);
printf("感谢使用,再见。by SDNU咸鱼小十七酱ovo\n");
system("pause");
return 0;
}
C++版:
#include <iostream>
using namespace std;
int main()
{
cout << "欢迎使用回文日查询。by SDNU咸鱼小十七酱ovo" << endl;
int year, month, day, y, ymd;
bool is_cycle;
int count = 0;
for (year = 2000; year < 2999; year++)
{
y = year;
month = y % 100;
month = (month % 10) * 10 + month / 10;
day = y / 100;
day = (day % 10) * 10 + day / 10;
is_cycle = false;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (day <= 31)
is_cycle = true;
break;
case 4:
case 6:
case 9:
case 11:
if (day <= 30)
is_cycle = true;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)//闰年也要考虑啊
{
if (day <= 29)
is_cycle = true;
}
else
{
if (day <= 28)
is_cycle = true;
}
break;
default: continue;
}
if (is_cycle)//如果可以构成回文日
{
y = year;
ymd = year;
while (y > 0)
{
ymd = ymd * 10 + y % 10;
y = y / 10;
}
cout << ymd << endl;
count++;
}
}
cout << "一共有" << cout << "个回文日。" << endl;
return 0;
}
收获与体会:
我已经是一条大二狗了,以后不能这么懒了!!呜呜有很多细节的地方没有考虑到,比如闰年。在度娘娘的帮助下改正了一些地方!
目前先扔出C和C++版(其实二者就一点点不同而已,长得很像hhh),还有Python过两天再加上(绝对不鸽!)。
害,在家无聊的各位英雄好汉可以加个人Q2062642718学习交流!
参考链接:
https://blog.csdn.net/weixin_34191845/article/details/90586782
感谢大大救码之恩!抱铁了老拳!QAQ