1到一个整数之间1的个数
2015-06-07 16:45
351 查看
一、设计思路
从一开始到N进行遍历,求每一位上的1的个数,再对各个位上个数相加即为结果,比如12的1的个数为5,其中个位上有1个,十位上有4个,一共五个。
二、代码
三、截图
四、结果分析
将问题分解化,一步一步进行求解,这也就是课上提到的大问题变成小问题,一个过程一个过程来慢慢解决,最后会中到一起,问题就解决了。
从一开始到N进行遍历,求每一位上的1的个数,再对各个位上个数相加即为结果,比如12的1的个数为5,其中个位上有1个,十位上有4个,一共五个。
二、代码
package 找1; import java.util.Scanner; public class findone { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner A=new Scanner(System.in); System.out.println("请输入一个十进制的正整数N:"); int n=A.nextInt(); int i,k=0; for(i=1;i<=n;i=i*10) { int m=i*10; int p=n%m,q=n/m; if(p/i==0) { k=k+q*i; } else if(p/i==1) { k=k+q*i; k=k+n%i+1; } else { k=k+(q+1)*i; } } System.out.println("1到"+n+"之间1的个数为:"+k); } }
三、截图
四、结果分析
将问题分解化,一步一步进行求解,这也就是课上提到的大问题变成小问题,一个过程一个过程来慢慢解决,最后会中到一起,问题就解决了。
相关文章推荐
- C#委托的介绍(delegate、Action、Func、predicate)
- Android中View绘制各种状态的背景图片原理深入分析以及StateListDrawable使用
- C语言(1) HelloWord 与JAVA对比
- Android程序出现错误“Field requires API level 5 (current min is 4)”的解决
- 为什么飞哥比龙哥聪明比龙哥白,为什么龙哥比黄哥哥白
- 手机号ID开关星号(*)
- [hihoCoder] Trie树
- codeforce Looksery Cup 2015 H Degenerate Matrix
- iOS开发UI高级—35核心动画(转场动画和组动画)
- js实现删除等其他操作弹出的提示框
- STM32第十二天AD转换
- 自定义View之onMeasure()
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- 单片机学习之路
- cf#306D. Regular Bridge(图论,构图)
- Nginx整合PHP原理
- iOS开发UI高级—33核心动画(基础动画)
- WinXP系统鼠标驱动出现问题导致点击无反应怎么办?
- iOS开发UI高级—34核心动画(关键帧动画)
- activiti学习(三)