使用" For Loop"显示以下输出的程序: 2 4 8 16 32 64 128 256 512 1024
#include <iostream>
using namespace std;
int main()
{
int n ;
for(n=1;n<=2048;n++){
n=n*2;
cout<<"\t"<<n<<endl;
}
return 0;
]
答案 0 :(得分:0)
由于for循环中的n++
,n
每次迭代都会递增。此外,它在每次迭代开始时乘以2。您需要做的是更改for循环中的increment语句以转换n
您想要的方式:
for (n = 2; n <= 1024; n *= 2) {
cout << "\t" << n << endl;
}
或使用单独的循环变量来执行一定数量的迭代:
int n = 1;
for (int i = 0; i < 10; i++) {
n *= 2;
cout << "\t" << n << endl;
}
答案 1 :(得分:0)
使用c ++的pow函数
#include <math.h>
int s=1;
for(i=1;i<=5;i++)
{
s=Math.pow(2, i);
cout<<s<<"\n";
}
还包括数学标题库
答案 2 :(得分:0)
正如jcarpenter指出的那样,除了n
(可以写成for
BTW)之外,你的n=n*2
循环中的错误正在增加n *= 2
。所以我削减了增量并将双重操作移到了循环头。幸运的是,将数字与2
相乘可以通过移位操作非常有效地实现。这就是我建议的代码:
#include <iostream>
int main(void)
{
for(int n = 2; n <= 1024; n <<= 1)
{
std::cout << n << std::endl;
}
}