从1数到n,1出现多少次,有多少个1的问题,想了好长时间,才写出这个。算的速度还是可以的
2008-05-21 00:45
323 查看
今天看了一本书,上面说,如果你想编程,就要先把自己想做的先写在纸上,然后按流程去做。
我才突然发现,为什么我解决不了这个问题,原来,我一直在用脑子想,脑子再聪明也记不住所有环节。特别是编程。里面要注意的太多了。所以我就写了一份流程。在写的时候,就把问题给解决了,然后把源码打上,呵呵,原来一切如此简单。
我才突然发现,为什么我解决不了这个问题,原来,我一直在用脑子想,脑子再聪明也记不住所有环节。特别是编程。里面要注意的太多了。所以我就写了一份流程。在写的时候,就把问题给解决了,然后把源码打上,呵呵,原来一切如此简单。
#include <iostream> using namespace std; int quan(long); //求一个数的位数,也称这个数的最高权 int bit(long); //求一个数最高的位上面的数; long sumhigh(long); //砍掉一个数的最高位; long pow(int x,int y); //算一个数的正整数幂 int main() { long a,b,c,high,d; //a,是放输入数的,b是放结果的,c是放过程结果的,high是最高位 int y; //d是放a的值,y是放最高位的 cout <<"请输入一个整数,我们将判断它包含的数中有多少个1:"; cin >>a; d=a; b=0; high=0; for (long i=quan(a);i>0;--i) { if (quan(a)<i) y = 0 ; else y= bit(a); if (y==1) { c=high*pow(10,i-1)+sumhigh(a)+1; b=b+c; } else if (y>1) { c=high*pow(10,i-1)+pow(10,i-1); b=b+c; } else if (y==0&&i!=1) { c=high*pow(10,i-1); b=b+c; } else if(y==0&&i==1) { c=high; b=b+c; } high=d/pow(10,i-1); if (y!=0) a=sumhigh(a); } cout <<"包含1的个数有:"<<b<<"个"; } int quan(long x) { bool a=true; int b=0; do { if (x<1) { a=false; } else { x=x/10; b++; } }while(a); return b; } int bit(long x) { int a,b=1; do { if (x>=10) { x=x/10; } else b=0; }while (b); return x; } long sumhigh(long x) { long a; a= x-bit(x)*pow(10,quan(x)-1); return a; } long pow(int x,int y) { long a=1; if (y>0) { for (int i=0;i<y;++i) { a=a*x; } } else if (y==0) a=1; return a; }
相关文章推荐
- sdwebimagedownloader。m这个文件里面加了user-agent验证就可以了,现在问题虽然解决了。但是还是没搞懂原因
- 扑克牌洗牌问题<用java写出算法:54张扑克,分成上下两等份有规律的洗牌,多少次可以返回初始值>
- 【codeforces 727 C】【交互题 求原数组】【告诉你有一个长度为n序列,你可以问n个问题,每个问题为ai+aj等于多少,最后输出这个序列】
- 做作业还是不要装逼。呜呜,知错了。谁能知道这个小小的问题浪费了我多少时间。一个上午的努力!!!
- Ubuntu 16.04下用Wine运行的软件出现方块的解决思路(应该是兼容现在所有平台的Wine碰到这个的问题)
- 一个搜索的需求可以有多少功能问题?(上)
- 安装VS2005 SP1出现这样问题“windows 无法访问指定设备、路径或文件。您可能没有合适的权限访问这个项目。”
- 36匹马赛跑,跑道同时只能容许6匹马。而且36匹马速度不同,但是每次跑的速度恒定。 问跑多少次可以选出第一,第二,第三名?
- vsftp是不允许root用户登录的,可以通过修改限制来解决这个问题
- WebView展示图文混排,以及出现文字长度超过屏宽造成的WebView可以左右滑动问题
- #在一个文本框中输入“sdfsf”等内容,提交表单后,页面出现错误,不知怎样可以捕获这个异常?
- VMware Workstation 运行出现“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”解决方案
- openlayers出现Failed to load resource: net::ERR_UNKNOWN_URL_SCHEME这个问题
- 当你的工程出现了问题,在别的电脑上可以正常运行。你该怎么做。。
- Could not open Hibernate Session for transaction; nested exception is.....远程服务器部署后出现这个问题分析
- 项目一,学生信息(可以用两种方法,这种方法可以避免将protected改为private出现问题)
- Apache Ant运行时Unable to locate tools.jar解决方法 (ionic 配置 ant 的时候出现这个问题也可按照下边方法解决)
- Corrupt Image File - The image file 'Default.png' appears to be corrupt. 同样的问题出现第二次了,完全忘记了怎么处理,还是要记录下来。
- 据说用这个参数可以解决rpm依赖包问题
- 第六感|最近又出现第六感了这个是什么问题呢