求a+aa+aaa+aa......a
来源:百度知道 编辑:UC知道 时间:2024/06/09 19:44:02
程序填空,不要改变与输入输出有关的语句。
输入2 个正整数a 和n, 求a+aa+aaa+aa⋯a(n 个a)之和。
例:括号内是说明
输入
2 3 (a=2, n=3)
输出
246 (2+22+222)
输入
8 5 (a=8, n=5)
输出
98760 (8+88+888+8888+88888)
#include <stdio.h>
void main()
{
int i, n;
long int a, sn, tn;
scanf("%ld%d", &a, &n);
/*---------*/
printf("%ld\n",sn);
}
输入2 个正整数a 和n, 求a+aa+aaa+aa⋯a(n 个a)之和。
例:括号内是说明
输入
2 3 (a=2, n=3)
输出
246 (2+22+222)
输入
8 5 (a=8, n=5)
输出
98760 (8+88+888+8888+88888)
#include <stdio.h>
void main()
{
int i, n;
long int a, sn, tn;
scanf("%ld%d", &a, &n);
/*---------*/
printf("%ld\n",sn);
}
搞定
---------------
sn=tn=a;
for(i=1;i<n;i++){
tn=tn*10+a;
sn=sn+tn;
}
如果a只是一位数的话:
#include <stdio.h>
#include <math.h>
int main()
{
int a,n,sn;
scanf("%d%d",&a,&n);
sn=a*(10*(pow(10,n)-1)/9-n)/9;
printf("%d",sn);
}
如果a可能是多位数
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
long a,n,sn,q=1;
scanf("%ld%ld",&a,&n);
char str[21];
sprintf(str,"%d",a);
q=pow((double)10,(int)strlen(str));
sn=a*(q*(pow((double)q,n)-1)/(q-1)-n)/(q-1);
printf("%ld",sn);
}
下面是用递归做的
int su(int a,int n){
if(n==1) return a;
else return su(a,n-1)*10+a;
}
int f(int a,int n){
if(n==1) return a;
else return(f(a,n-1)+su(a,n));
}
void main(){
int i, n;
c语言:求a+aa+aaa+aa…a
求Sn=a+aa+aaa+...+aa...a(n个a)之值
如何用while语句实现a+aa+aaa+aa+a
编程求s=a+aa+aaa+aaaa+.......+aaaaaaaaaa(n个a)
求s=a+aa+aaa+aaaa+aaaaa+aaaaaa的C语言程序
目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时
a+aa+aaa+++++++aaaaaaaaaaa(n个)怎么用c++编
循环语句求Sn=a+aa+aaa+…+aaa…a(n个a)的值其中a是一个数字n由键盘输入
c语言问题:求a+aa+aaa+aaaa+aaaaa的值,其中a是0-9中的一个数