[PTA]7-38 数列求和-加强版

给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。

输入格式:

输入数字A与非负整数N。

输出格式:

输出其N项数列之和S的值。

输入样例:

1 3
结尾无空行

输出样例:

123
结尾无空行
  • 提交结果:

在这里插入图片描述

  • 源码:
#include<stdio.h>
int main()
{
    
    
	int sum[100000];
	int A, N;
	int carry = 0;

	scanf("%d %d", &A, &N);

	if (N == 0)
	{
    
     
		printf("0"); 
	}
	else 
	{
    
    
		/* 对sum[]数组赋值,最大为N个A的十进制数 */
		for (int i = 0; i < N; i++)
		{
    
    
			sum[i] = A;
		}

		/* 依次使sum[]数组的长度减1 */
		for (int i = N - 1; i >= 1; i--)
		{
    
    
			sum[i] = sum[i] * (i + 1) + carry;
			int temp = sum[i];
			sum[i] = sum[i] % 10;
			carry = temp / 10;
		}

		sum[0] = A + carry;

		for (int i = 0; i < N; i++)
		{
    
    
			printf("%d", sum[i]);
		}
	}

	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_51008866/article/details/120240958