算法题每日一练 --- 第 7 天:美丽的 2
一、问题描述
小蓝特别喜欢 2,今年是公元 2020 年,他特别高兴。 他很好奇,在公元 1 年到公元 2020 年(包含)中,有多少个年份的数位中包含数字 2?
二、题目要求
考察
复制代码
运行限制
最大运行时间:1s
最大运行内存: 128M
三、问题分析
题目要求求出在 1 到 2022 的范围内有多少个年份包含 2,我们只需要对每一个年份进行判断就行了,比如构造一个单独的函数用来判断,其结果返回 bool 型变量,bool 变量包含两个结果,true 代表 1 可执行。false 代表 0,不可执行。
复制代码
四、编码实现
复制代码
五、输出结果
输出结果为:563
六、拓展延伸
如果把题目改成:小蓝特别喜欢 2,今年是公元 2020 年,他特别高兴。 他很好奇,在公元 1 年到公元 2020 年(包含)中,有多少个数字 2?
拓展之后,总体思路和上面的题目差不多。第一步,使用 for 循环 1 到 2020 之间所有的年份。用一个 while 循环判断这个年份是否存在 2,假设当前年份是 n。n%10 如果等于 2 那么代表 2 的个数的 sum++,然后对 n 进行除 10 运算,直到 n 的数值等于 0,退出 while 循环。
需要把主函数里面的 sum++位置放在,judge 函数里面,如果 if(k%10==2)的话,计数器 sum++,最后函数返回的是一个数所有的 2。
版权声明: 本文为 InfoQ 作者【知心宝贝】的原创文章。
原文链接:【http://xie.infoq.cn/article/27e4463e4ab8fb127f76d4f96】。文章转载请联系作者。
评论