7-38 数列求和-加强版 (20分)

题目:给定某数字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

<1>模拟手算

#include<stdio.h>
int main()
{
	int A, N;
	static int a[1000000];//构造大数组
	int i, temp, jw=0, len = 1;
	scanf_s("%d%d", &A, &N);
	for (i = 1; i <= N; i++)
	{
		temp = A * (N + 1 - i) + jw;//计算每一位大小
		a[i] = temp % 10;//实际值
		jw = temp / 10;//进位
		if (i == len && i != N)
			len++;
		else if (i == N && jw != 0)//最大位进位后又进位的情况
		{
			len++;
			a[len] = jw;
		}
	}
	for (i = len; i >= 1; i--)
		printf("%d", a[i]);
	printf("\n");
	return 0;
}
发布了5 篇原创文章 · 获赞 5 · 访问量 91

猜你喜欢

转载自blog.csdn.net/m0_46200758/article/details/104004454