您的位置:首页 > 产品设计 > UI/UE

POJ 1503 Integer Inquiry

2017-04-02 20:26 218 查看
http://poj.org/problem?id=1503

题意:
给出n个数,计算和。

思路:

基础的大整数加法题。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include<vector>
using namespace std;

const int maxn = 100 + 5;

char s[maxn][maxn];
int num[maxn][maxn];
int ans[maxn];
int max_len;
int n;

int add()
{
int i;
int t = 0;
for (i = 0; i < max_len; i++)
{
int k = 0;
for (int j = 0; j < n; j++)
{
k += num[j][i];
}
k += t;
ans[i] = k % 10;
t = k / 10;
}
while (t)
{
ans[i++] = t % 10;
t /= 10;
}
return i;
}

int main()
{
//freopen("D:\\txt.txt", "r", stdin);
n = 0;
max_len = 0;
memset(num, 0, sizeof(num));
while (gets(s
))
{
if (!strcmp(s
, "0"))  break;
int len = strlen(s
);
max_len = max(max_len, len);
for (int i = len - 1; i >= 0; i--)
num
[len - 1 - i] = s
[i] - '0';
n++;
}
int cnt = add();
for (int i = cnt - 1; i >= 0;i--)
printf("%d", ans[i]);
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: