高精度加法笔记

为啥要写这篇博客对这种基础算法做笔记嘞,因为我被一道简单的加法题卡了很久🤗所以借这个机会来巩固一下数组的用法。

以下是题目:

数列求和-加强版

给定某数字$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 array[100000];

int main()	{
	int i, a, n, temp = 0;
	scanf("%d%d", &a, &n);
	for (i = 1; i <= n; i++)	{
		array[i] = a * i;                //先计算好各个位的原本的数
	}
	for (i = n; i > 1; i--)	{
		array[i] = (array[i] + temp);    //加上进位的数
		temp = array[i] / 10;            //进位
	}
	array[i] = array[i] + temp;              //最后一位不能省去出去个位的数
	printf("%d", array[1]);
	for (i = 2; i <= n; i++)	{
		printf("%d", array[i] % 10);
	}
	return 0;
} 
posted @ 2022-06-13 10:01  王旁青头戋五一  阅读(25)  评论(0编辑  收藏  举报