寻找数列中的1
2015-06-07 14:08
267 查看
一、题目与要求
给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
要求:写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数。例如 f(12) = 5。
在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。
二、设计思路
先计算2位数和3位数的1的个数的情况,然后递归出1的个数的算法,进行编程。
三、实验代码
四、实验截图:
给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
要求:写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数。例如 f(12) = 5。
在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。
二、设计思路
先计算2位数和3位数的1的个数的情况,然后递归出1的个数的算法,进行编程。
三、实验代码
#include<iostream.h> int main() { int num; int tag=1; int count=0; int heigher,cur,lower; cout<<"请输入数据:"; cin>>num; while(num/tag!=0) { heigher=num/(tag*10); cur=(num/tag)%10; lower=num%tag; switch(cur) { case 0: count=count+heigher*tag; break; case 1: count=count+heigher*tag+lower+1; break; default: count=count+(heigher+1)*tag; break; } tag=tag*10; } cout<<"1出现的个数为:"<<count<<endl; return 0; }
四、实验截图:
相关文章推荐
- hdu 1104 Remainder 队列
- Android Studio如何导入Github上的项目
- ubuntu下安装配置JDK
- 不要再坑人啦!NSOperation才是苹果推荐使用的多线程技术!
- Eclipse新建Android项目时,出现appcompat_v7工程错误和红色感叹号(提示一堆style错误)
- 十三周——输入输出流——阅读
- 书写是为了更好的思考~
- 去掉CI默认url中的index.php
- Windows在结构Eclipse+Android4.0开发环境
- 事务的生命周期与事务模式(autocommit)
- keil生成bin文件
- 自定义优先队列
- PHP “Warning: session_start()...” 的解决方法
- 为什么我们常说很多时候一定要亲身经历了之后才能明白?
- House Robber
- Wrong FS: hdfs://......, expected: file:///
- 《浦岛太郎》——太宰治
- springMVC学习笔记汇总(持续更新)
- Objective-C 给分类添加属性——关联对象
- Java语言描述:递归与分治策略之全排列问题