c++求2+22+222+2222+22222。。。

#include<iostream.h>
void main()
{
int sum=0;
int a=2;
int n;
cout<<"qing shu ru yi ge zheng shu";
cin>>n;
for(int i=1;i<=n,i++;)
sum=sum+(a*10+a);
cout<<"...."<<sum<<endl;
}

#include<iostream.h>
void main()
{
int sum=0;
int a=2;
int n;
cout<<"qing shu ru yi ge zheng shu";
cin>>n;
for(int i=1;i<=n;i++ ) // 注意i<=n后面为分号,i++后不需要分号
{
sum =sum + a; // 若按你的写法,i=1时,加的就是22,不是2了
a = (a*10+2); // 需不断更新a,
}
cout<<"...."<<sum<<endl;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-11
sum=sum+(a*10+a);这里有问题 a 一直是2
可以这样替换
int digital=1;
for(int j=0;j<i;j++)
{digital=digital*10;} //计算最高位数为多少位
a=a+a*digital;
sum=sum+a;
第2个回答  2010-11-11
int a = 0;
int times = 1; //倍数
int j;

for(int i=1;i<=n,i++;)
{
a = a * times + 2;
times = times * 10;
sum += a;
}
第3个回答  2010-11-11
两个for就行了
相似回答