求序列和:输入 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)。试编写相应程序。


分析

编写一个函数求每项的值,把求和与每项的值分开写成函数。


代码

#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;
}

运行测试

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值