一、题目要求

给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
要求:
写一个函数 f(N) ,返回1 到 N 之间出现的“1”的个数。例如 f(12)  = 5。
在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。
要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。
(截止日期2015-4-30晚18:00)
二、设计思想
首先得列出当N为1~AB(2=<A=<9)以内时,各种情况十位与个位“1”的个数,可以肯定十位的“1”与个位数上的“1”有关,即十位上“1”为B-0+1,个位上“1”与十位上数有关,即个位上“1”为A-0+1,所以用一个count变量记住“1”的个数。
三、代码
#include<iostream.h>
int main()
{
int count=0,i,N,temp;
cout<<"请输入N的值:";
cin>>N;
for(i=1;i<=N;i++)
{
temp=i;//记录i的值
while(temp!=0)
{
count+=(temp%10==1)?1:0;
temp/=10;//直接用i的话,i最后变为0,++的话变为1,死循环了
}
}
cout<<count<<endl;
return 0;
}
四、截图
当N=101时,百位上“1”有2个,十位上“1”有10个,个位上“1”有11个,总共23个
五、总结
 这个题目与以前题目都有一个相似之处,就像以前求读者买一批书的最低价格题目,都得找出一些数范围的各种联系或者规律,
再设计算法就好解决了,总之找规律很重要特别是这种需要技巧的程序设计题,技巧很重要。但是切记不是任何题目都有技巧,
所以特定题目特定考虑,找到最优算法。
 
 
 

最新文章

  1. 如何用java自带的工具生成证书
  2. DNS错误 事件4000 4013
  3. c#查找string数组的某一个值的索引
  4. 移动端自动化环境搭建-Robot Framework的安装
  5. telnetlib/SNMP
  6. java-io-FileInputStream与FileOutputStream类
  7. 第九篇 Integration Services:控制流任务错误
  8. Basic knowledge of javaScript (keep for myself)
  9. asp.net+swfupload 多图片批量上传(附源码下载)
  10. 12C RMAN 备份参考v1
  11. brctl 的使用
  12. IE浏览器中用Firebug调试网站的方法
  13. C#多线程和线程同步总结
  14. 学JAVA第十五天,方法重载及构造方法进一步了解
  15. SQL修改表字段,加附属属性
  16. ⑤早起的鸟儿有虫吃-JSTL核心标签库[收藏]
  17. Rikka with Subset HDU - 6092 (DP+组合数)
  18. Xshell 连接 CentOS 7 与 Ubuntu Server
  19. leetcode263
  20. Python爬虫基础(三)urllib2库的高级使用

热门文章

  1. AFNetworking 2.x 的SSL身份认证
  2. 第一章 程序设计和C语言(笔记)
  3. javascript node节点学习
  4. 弄清Spark、Storm、MapReduce的这几点区别才能学好大数据
  5. Home Assistant系列--之树莓派安装Samba 和 Jupyter Notebook
  6. coinmarketcap.com爬虫
  7. 基于MATLAB的多项式数据拟合方法研究-毕业论文
  8. 嵌入式C语言——提取时分秒
  9. combobox添加复选框
  10. 苏州Uber优步司机奖励政策(4月11日)