引入
求序列和:输入 2 个正整数 a 和 n,求 a+aa+aaa+aa…a(n 个 a)之和。例如, 输入 2 和 3,输出 246(2+22+222)。试编写相应程序。
分析
编写一个函数求每项的值,把求和与每项的值分开写成函数。
代码
#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;
}