 用VC++编写一个程序,求满足以下条件 n 的最大值: 1^1+2^2+2^3+…+2^n<1000。

如题所述

int n = 0;

int nSum = 0;

do{

nSum = ( nSum << 1 ) + 1;

++n;

}while(nSum < 1000);

最后的 n 即为所求。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-26
小菊坂胡蝶 的回答很妙。关键在于二进制的用法呀!
第2个回答  2010-09-26
求C语言怎样写 速求 谢谢!
第3个回答  2010-09-26
[1] 1^1+2^2+2^3+…+2^n = 2^0+2^2+2^3+…+2^n
[2] 2^0+2^2+2^3+…+2^n = 2^0+2^1+2^2+2^3+…+2^n - 2^1
= 2^(n+1)-2^1

故:1^1+2^2+2^3+…+2^n<1000 等价于 2^(n+1)-2^1<1000
等价于 2^(n+1)<1002
易得 2^10 = 1024;2^9 = 512
所以 n的最大值为8
相似回答