【问题描述】 输入2个正整数a和n,求a+aa+aaa+aaa(n个a)之和。例如,输入2和3,输出246(2+22+222)
【输入形式】? ?从键盘输入正整数a和正整数n。? 【输入输出样例】 Input a,n:8.5 s=98760
#include<iostream>
using namespace std;
int main()
{
int n,a,sum,num;
cout<<"Input a, n: ";
cin>>a>>n;
/*先算出总数中最大的数(n个a)aaa...a,然后每算出一个减少一位a(算n-1个a),直到算完a(1个a)这个数停止。(例如先算出aaaaaa,再到aaaaa,再到aaaa......) */
for(int j=n;j>0;j--)
{
int i=1,x=1;num=0; //每个算出的数为num,算完要先清零再算下一个很重要
while(i<=j)
{ //从个位开始叠加到符合的num
num+= a*x; //等同于num=num+a*x
x *= 10; //等同于x=x*10;使等会的a增加多一位数
i++;
}
//cout<<num<<endl; 用来检验相加的各个数有无出错
sum+= num; //等同于sum=sum+num;累积各个数的总和。
}
cout<<"s="<<sum<<endl;
}
|