C++的一个简单问题:a aa aaa aaaa...第n项

来源:百度知道 编辑:UC知道 时间:2024/07/15 23:42:59
C++的一个简单问题:a aa aaa aaaa...第n项 帮我看下哪错了呀.谢谢
#include<iostream.h>
int main() //求an项
{ int i,an,a,n;
cout<<"Enter a,n:";
cin>>a>>n;
i=0;
an=1;
while(i<n)
{ an=a*10;
an=an+a;
i++;
}
cout<<"an="<<an;
return 0;
}

你出错是因为在循环体里:
an=a*10;
an=an+a;
i++;

每次an=a*10,那每轮循环开始an不就一直是a*10,那无论多少次循环都相当于只作了一次。
只用改为an=an*10
另外初始化时an=0,这样第一次an=an*10才不会导致an首位为1

下面是改好的,不用像楼上加了一个参数tn做传递:

#include<iostream.h>
int main() //求an项
{ int i,an,a,n;
cout<<"Enter a,n:";
cin>>a>>n;
i=0;
an=0; //原来an=1
while(i<n)
{ an=an*10; //原来an=a*10
an=an+a;
i++;
}
cout<<"an="<<an;
return 0;
}

另外,楼上的程序有错啊。楼上写的是
a+a+aaa+aaaa...求第n项的和
而楼主要求的是
a aa aaa aaaa...第n项

int main()
{
int i,an=0,a,n,tn=0;
cout<<"Enter a,n:";
cin>>a>>n;
i=1;
an=0;
while(i<=n)
{
tn=tn+a;
an=an+tn; //这个应该放在循环体外面
a=a*10;
++i;
}
cout<<"an="<<an;
return 0;
}
改成:
#include<iostre