当前位置:网站首页>求序列和:输入 2 个正整数 a 和 n,求 a+aa+aaa+aa…a(n 个 a)之和。例如, 输入 2 和 3,输出 246(2+22+222)

求序列和:输入 2 个正整数 a 和 n,求 a+aa+aaa+aa…a(n 个 a)之和。例如, 输入 2 和 3,输出 246(2+22+222)

2020-12-07 22:48:05 上课不迟到

#include <stdio.h>
//声明函数 
int SumA(int a,int n);
int fn(int a, int n);
int main(void) { 
 
/**
.求序列和:输入 2 个正整数 a 和 n,求 a+aa+aaa+aa…a(n 个 a)之和。例如,
输入 2 和 3,输出 246(2+22+222)。试编写相应程序
*/
 
int a,n;
printf("Entry a  Entry n :");
scanf("%d",&a);
scanf("%d",&n);
 
int sum;
//调用求和函数 
sum = SumA(a,n);
//打印和 
printf("sum = %d",sum);
 
return 0; 
}
 
/**
给定两个均不超过9的正整数a和n,要求编写函数求a+aa+aaa++?+aa?a(n个a)之和
其中函数fn须返回的是n个a组成的数字;SumA返回要求的和
*/
 
//fn求数列的每一列
int fn( int a, int n ){
    //定义初始化变量
    int t = a,i = 1;
    //通过循环得到每一项
    for(i = 1; i < n; i++){
        //定义临时变量
        int temp = 1,j;
        for(j = 1; j <= i; j++){
            //得到获取十位、百位、千位...
            temp*=10;
        }
        //得到每一项
        t+=temp*a;
    }
    //返回项
    return t;
}
 
//SumA求所有列的和
int SumA( int a, int n ){
    //定义求和变量和自增变量
    int sum=0,i;
    for(i = 1; i <= n; i++){
        //传入每一项,累加求和
        sum+=fn(a,i);
    }
    return sum;
}

版权声明
本文为[上课不迟到]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4672495/blog/4780031