请用C++编写:求Sn=a+aa+aaa+...+aa...a的值

来源:百度知道 编辑:UC知道 时间:2024/06/15 09:54:16
要求:输入a的值和要求的前n项

int a,n;
cout<<"please input the value of a and n;"<<endl;
cin>>a>>n;
double d=0,sum=0;

for (int i=0; i<n; i++)
{
d = d+pow((double)10,i);
sum+=d;
}

cout<<sum*a;

本例只能求的在机器字长表式范围内的数。对于“超大数”无能为力
本例用到了c++的一个库函数double pow(double,int)就是返回第一个参数的第二个参数次幂的值。
for循环完成的是在n指定范围内求得1+11+111+....1111....111 结果保存在sum中 然后返回sum*a 就得到a+aa+aaa+.....aaa...aaaa了。
把我的代码直接放在main函数中就可以运行了。
记得要#include<cmath>这个头文件啊由于编译环境不同有可能你也要加.h后缀。笔者用的是visual studio 2005

楼上两位的程序都无法正确得到结果。

因为当n输入比较大的时候,数值就比较大,所以那个a要声明为double

#include<iostream>
using namespace std;

void power(double a,int n)
{

double sum1=a;
double sum2=a;
if(n==1)
{
cout<<"Sn=";
cout<<a<<endl;
return;
}
while(n>1)
{
sum1=a*sum1;
sum2=sum2+sum1;