我的求怎么不累加呀??

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:31:59
#include<iostream>
#include<math.h>
using namespace std;
main()
{
int k=2,sum=0;
for(int i=2;i<=8;i++)
{
sum+=k;
k=2*pow(10,(i-1));

}
cout<<"2+22+222+2222222="<<sum<<endl;
return 0;
}
输出的结果是:2222222,应该是2469134.

#include<iostream>
#include<math.h>
#include<conio.h>
using namespace std;
main()
{
int k=2,sum=0;
for(int i=2;i<=8;i++)
{
sum+=k;
k=2*pow(10,(i-1));
cout<<sum<<" "<<k<<endl;//监测语句
}
cout<<"2+22+222+2222222="<<sum<<endl;
return 0;
}
把这段代码写进去你就知道为什么错了!
正确的代码为:
#include<iostream>
#include<math.h>
using namespace std;
main()
{
long k=2,sum=0,num=0;
for(int i=2;i<=8;i++)
{
num+=k;//数字 就是那几个‘2’
sum+=num;//和
k=2*pow(10,(i-1));
}
cout<<"2+22+222+2222222="<<sum<<endl;
return 0;
}
结果为:2469134

pow函数的参数和返回是float型的
#include<iostream>
#include<math.h>
using namespace std;
main()
{
float k=2,sum=0,num=0;
for(int i=2;i<=8;i++)
{ <