【6月挑战算法入门级挑战赛】修炼
作者:互联网
试题描述
修仙小说实在是太吸引人了。在修仙的世界中一般都需要修炼升级。不过据说修仙应该有十一个等级:旋照、开光、融合、心动、灵寂、元婴、出窍、分神、合体、渡劫、大乘。也不知道是不是真的能够修仙,有的时候感觉编程就像在修仙啊。
那么假设,每练一个等级需要x年,那么整个修炼完成要多少年呢?
输入
输入只有一个正整数x(0 < 0 < 10 ^ 10000)
输出
输出11级总共需要的年数。
输入示例
1000000
输出示例
11000000
啊这……乍一看到,想的是这么简单,但是转瞬一想要用高精度,但是高精乘法有一些细节不好拿捏,所有琢磨了一会……a乘11不就是a乘10+a吗(小学就知道还想这么半天)。
于是变成了高精度加法
#include <iostream>
#include <cstring>
using namespace std;
string str;
int a[100000], b[100000];
int lena, lenb;
int main()
{
cin >> str;
lena = str.size();
lenb = lena + 1;
b[0] = 0;
for (int i = 0; i < str.size(); i++)
{
a[i] = str[str.size() - 1 - i] - '0';
b[i + 1] = a[i];
}
int lenc = lenb;
int tmp = 0;
for (int i = 0; i <= lenc; i++)
{
b[i] = b[i] + a[i] + tmp;
if (b[i] >= 10)
{
tmp = b[i] / 10;
b[i] %= 10;
}
else
tmp = 0;
}
if (b[lenc] != 0)
lenc++;
for (int i = lenc - 1; i >= 0; i--)
printf("%d", b[i]);
cout << endl;
return 0;
}
标签:tmp,10,修仙,int,入门级,修炼,str,挑战赛,size 来源: https://blog.csdn.net/cool99781/article/details/117885054