求出sum=1+11+111+1111+ .... + 111...111(1024个1),sum有多少个1
2015-01-02 11:43
405 查看
先列一个加法竖式:
由低到高位开始统计1的个数。sum的最低位是4不等于1,倒数第二位2+3=5也不等于1,依次类推可以算出每一位是否为1。
还有一个需要确定的问题是sum位数是否会超过1024位,答案是不会,有兴趣的请自行证明。
1 | ||||||||||
1 | 1 | |||||||||
1 | 1 | 1 | ||||||||
1 | 1 | 1 | 1 | |||||||
. | ||||||||||
. | ||||||||||
1 | . | . | . | 1 | 1 | 1 | 1 | 1 | (1023个1) | |
1 | 1 | . | . | . | 1 | 1 | 1 | 1 | 1 | (1024个1) |
-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | ------------- |
1 | 0 | 2 | 4 | |||||||
1 | 0 | 2 | 3 | |||||||
. | . | |||||||||
2 | ||||||||||
1 |
还有一个需要确定的问题是sum位数是否会超过1024位,答案是不会,有兴趣的请自行证明。
#include <iostream> using namespace std; int countSumOne(int oneCount) { if(oneCount <= 0) { return 0; } int count = 0; int sum = 0; int maxOneCount = oneCount; while(maxOneCount) { sum += maxOneCount; if(sum % 10 == 1) { ++count; } sum /= 10; --maxOneCount; } return count; } int main(int argc, char* argv[]) { cout << countSumOne(-1024) << endl; cout << countSumOne(1024) << endl; return 0; }
相关文章推荐
- 1+11+111+1111+11111+……+11……11(2009个1)的和有多少个1?
- 笔试题&面试题:求1+11+111+1111+...+n个1的和中有多少个1?
- 求1+11+111+1111+...+n个1的和中有多少个1?
- Java学习笔记12:求s=1+11+111+1111+......+1111......1的值
- “清一色”数列1,11,111,1111,...
- 求sum=1+111+1111+........+1....111 .
- 计算1+11+111+1111+........
- 输入一个数 可得到这个数的十次加如输入1 可算 1+11+111+1111.........(十次)
- 求s=a+aa+aaa+aaaa+aa…a(n个a)之值,其中a是一个数字。例如:1+11+111+1111+...
- 面试题:1+11+111+1111+...+(2016个1)结果中含有多个6
- 求 a+aa+aaa+.......+aaaaaaaaa=? 其中a为1至9之中的一个数,项数也可以指定? 思路:先求出 1+11+111+1111+11111+.....+111111111 的公式,然后参照公式进行编码
- css知多少(11)——position
- css知多少(11)——position
- (当n属于long范围时)给出一个数n,求1到n中,有多少个数不是2 5 11 13的倍数
- css知多少(11)——position
- 【量化小讲堂-Python&Pandas系列11】法码三因子选股模型,有多少人可以跑赢
- 【程序11】有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,问每个月的兔子总数为多少?
- 杭电2076 sum=30*h-11*m/2.0-11*s/120.0大神的制作,刚刚学习的
- MSSQL中LIKE的1,11,111问题[原创]
- 算法练习(11) —— Split Array Largest Sum