《找“1”》
2015-06-04 13:49
190 查看
一 实验要求
给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
要求:
写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数。例如 f(12) = 5。
在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。
二 思路
计算从一到这个数有多少个一,只要一个一个数出就可以了,用到for循环一个一个数检验,一个循环内得到这个数的每一位,每得到一个一就将计数加一,for循环完成后输出。
三 代码实现
四 效果截图
五 总结
在思考这道题目的时候,本来我陷入了一个死胡同,但是后来我理清思绪,换了一种思考方式就想出了这种方法。以后如果在思考问题时换一种思路,也会得到很好的效果。
给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
要求:
写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数。例如 f(12) = 5。
在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。
二 思路
计算从一到这个数有多少个一,只要一个一个数出就可以了,用到for循环一个一个数检验,一个循环内得到这个数的每一位,每得到一个一就将计数加一,for循环完成后输出。
三 代码实现
//康娜 #include<iostream> using namespace std; void main() { int i,n,a=0,b,c,length=0; cout << "请输入计算的数字"; cin >> n; for (i = 1; i <= n; i++){ b = i; while (b != 0) { c = b % 10; if (c== 1) { a++; } b = b / 10; } } cout << a; }
四 效果截图
五 总结
在思考这道题目的时候,本来我陷入了一个死胡同,但是后来我理清思绪,换了一种思考方式就想出了这种方法。以后如果在思考问题时换一种思路,也会得到很好的效果。
相关文章推荐
- Eclipse与JRE1.8不兼容
- iOS 最佳实践
- 最近研究RabbitMQ的一些心得
- 动态SQL字符长度超过8000
- JAVA解析JSON数据
- 华南农业大学创新创业
- Path Sum
- Linux学习笔记(06-04)创建进程
- 用户调研
- 使用Log4net把日志写入到SqlServer数据库
- Extjs 4.1 grid 动态添加行
- 程序的内存分配
- tornado做简单socket服务器(TCP)
- beaglebone black 在debian下的spi使用笔记(1)-SPI加载
- IOS UIButton用法详解
- 机器学习--有监督学习和无监督学习
- 二十岁出头的时候上,你一无所有,你拥有一切
- 连载三 奖学金文章更新 张文军 北京IOS第38期学员
- NSString [a compare:b] NSOrderedSame NSOrderedAscending NSOrderedDescending
- js高级编程-Bom