返回:贺老师课程教学链接  项目要求

【项目6-回文日】
很有趣的一个题目:2011年11月02日是一个回文日:2011 1102,在2011级同学做这道题时我们刚刚度过这一天!请列出本世纪还有多少个回文日(假如我们能活到百岁,你和我的……)。注意:一年只有12个月。
[参考解答]

当年份确定后,如2015年,就看20155102能否构成一个合法的日期,其中51部分是月,02部分是日。显然,由2015就不能得出一个回文日。
    再如,当年份取2090年时,20900902,由2090可以构造出一个回文日来。
    用年份循环并判断,而不是罗列所有的日期,显然效率上更好。

#include <stdio.h>
int main()
{int year,month,day,y,ymd;int is_cycle;   //用于标识判断结果:为0时不构成回文日,不为0时,构成回文日int count=0;for(year = 2015; year < 2100; year++){y = year;  //思考:后面直接用year不行吗?month=y%100; //原年份的后两位对应月month=(month%10)*10+month/10;//还得把月倒过来,例year=2015时,month由15换为51   day=y/100; //原年份的前两位对应日day=(day%10)*10+day/10;//对日做同样的处理is_cycle = 0;switch(month) //12个月份,各自对应合法的日期范围{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("\n");return 0;
}

《C语言及程序设计》实践参考——回文日相关推荐

  1. 《C语言及程序设计》实践参考——回文、素数

    返回:贺老师课程教学链接  项目要求 [项目6-回文.素数] (1)编制一个函数reverse,返回给定数据的"反序数",例如输入1234,输出4321.请编制reverse函数, ...

  2. C语言及程序设计 实践参考——个人所得税计算器switch语句版

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 返回:贺 ...

  3. C语言及程序设计 实践参考——定期存款利息计算器

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 返回:贺 ...

  4. C语言及程序设计 实践参考——个人所得税计算器if语句版

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 返回:贺 ...

  5. C语言检查列表是否是回文的算法(附完整源码)

    C语言检查列表是否是回文的算法 C语言检查列表是否是回文的算法完整源码(定义,实现,main函数测试) C语言检查列表是否是回文的算法完整源码(定义,实现,main函数测试) #include < ...

  6. C语言判断字符串是否为回文

    C语言判断字符串是否为回文 回文就是字符串中心对称,如"abcba"."abccba"是回文,"abcdba"不是回文. /*判断字符串是否 ...

  7. 程序员的小节日__回文日

    回文日 今天是2018年10月2日.2018102,倒着读也是一样的.我们定义这样的节日为回文日. 求回文日 #include <cstdio> #include<cstdlib&g ...

  8. c语言检查密码是否出现回文,C程序检查数字是否为回文

    C程序检查数字是否为回文 在此示例中,您将学习检查用户输入的数字是否是回文. 要理解此示例,您应该了解以下C语言编程主题: 如果该数字的倒数等于原始数字,则整数是回文. 检查回文程序#include ...

  9. 法雷序列的c语言程序,程序设计实践(一).PDF

    程序设计实践(一) 程序设计实践(一): 风格.设计和实现 王新宇 2004.10.16 Outline 风格 原则 示例 设计和实践 马尔可夫链(Markov Chain) C, JAVA, C++ ...

最新文章

  1. 124. Leetcode 583. 两个字符串的删除操作 (动态规划- 字符串系列)
  2. python爬虫怎么爬小说_python从爬虫基础到爬取网络小说实例
  3. Spring DefaultListableBeanFactory
  4. Linux应用:FTP
  5. Axial symmetry FZU - 2035
  6. 安卓应用开发顶级框架大盘点,总有一款适合你
  7. android listpreference 自定义,Android中Fragmen首选项使用自定义的ListPreference的方法
  8. 使用模态窗口编辑数据
  9. 随想录(软件中的bug)
  10. GeoTools——JTS空间操作
  11. bootstrap弹出框居中
  12. 数据结构学习(2):汉诺塔问题
  13. Android系统信息获取 之八:WIFI设备和WIFI信号信息获取
  14. 电脑快速截屏(缺少PrtScr键)
  15. Google登陆集成笔记-含坑
  16. 说明书丨Epigentek EpiNext 高灵敏免疫共沉淀测序试剂盒
  17. 台式电脑电源接口介绍
  18. 论文笔记:BPR-Bayesian Personalized Ranking from Implicit Feedback | 推荐系统BPR算法分析
  19. mgre的全连和星型拓扑实验
  20. android6.0原生壁纸,惊呆了!安卓6.0壁纸竟然是这样得来的

热门文章

  1. Ubuntu在命令行下不能够切换字母的大小写,只能输入大写字母
  2. 错误:pytube.exceptions.RegexMatchError
  3. lua学习笔记之闭包
  4. LeetCode686 Repeated String Match(字符串匹配)
  5. 性能调优之工具---perf
  6. hduoj4092 Yummy Triangular Pizza(打表)
  7. linux ubuntu 虚拟机中配置samba的实现文件共享的方法
  8. 值得mark的11个开源机器学习项目 .
  9. Scala --Actor通信模型概述
  10. go map的定义和使用 键值对存储