Integer Inquiry 

One of the first users of BIT's new supercomputer was Chip Diller. Heextended his explorationof powers of 3 to go from 0 to 333 and he explored taking various sumsof those numbers.

``This supercomputer is great,'' remarked Chip. ``I only wish Timothy werehere to see theseresults.'' (Chip moved to a new apartment, once one became available onthe third floor of theLemon Sky apartments on Third Street.)

Input

The input will consist of at most 100 lines of text, each of whichcontains a single VeryLongInteger.Each VeryLongInteger will be 100 or fewer characters in length, and willonly contain digits (no VeryLongInteger will be negative).

The final input line will contain a single zero on a line by itself.

Output

Your program should output the sum of the VeryLongIntegers given in the input.

Sample Input

123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
0

Sample Output

370370367037037036703703703670

题意: 大数相加~ 做法: 看AC的代码, 顺带注释, 容易懂的~ 另注:写了两份, 第一份AC之后发现代码不完美, 999999999999999 + 1计算不来 虽然AC了, 但是是由于黑盒子数据太弱了, 于是又重写了一份, 终于可计算999999999999999 + 1了 原因出在: 一个是每次加完都判断进位, 导致没有考虑到进位的连锁反应, 如999999999999999 + 1, 会一直进位 所以, 后来改成了全部累加完后, 统一进行进位, 就无懈可击了~ AC代码(无懈可击版, 样例999999999999999 + 1可行):

#include<stdio.h>
#include<string.h> int ans[1001]; int main() {
char num[101];
char ch;
int len;
//初始化答案数组~
for(int i = 0; i < 1001; i++)
ans[i] = 0; while(gets(num) != NULL) {
//结束并输出的标志
if(num[0] == '0')
break;
len = strlen(num);
//num数组倒序
for(int i = 0; i < len/2; i++) {
ch = num[i];
num[i] = num[len - 1 - i];
num[len - 1 - i] = ch;
}
//先累加~
for(int i = 0; i < len; i++)
ans[i] += (num[i] - '0');
}
//跳出后, 把累加的数值进行处理, 该进位的进~
for(int i = 0; i <= 999; i++) {
ans[i+1] += ans[i] / 10;
ans[i] = ans[i] % 10;
}
//从末尾开始找, 找到第一个非零数位置
int pos;
for(int i = 1000; i >= 0; i--) {
if(ans[i] != 0) {
pos = i;
break;
}
}
//从该位置倒序输出~
for(int i = pos; i >= 0; i--)
printf("%d", ans[i]);
printf("\n");
return 0;
}

AC代码(有漏洞版, 很久以前写的, 比较搓, 样例999999999999999 + 1不可通过)

#include <stdio.h>
#include <string.h> int main(){ int i, t, l, n;
int Sum, sum[1001];
char add[101];
for (i = 0; i < 1001; i++)
sum[i] = 0;
while (gets(add)){ if (strcmp(add,"0") == 0)
break; l = strlen(add); //add字符数组的倒序:
for (i = 0; i < l/2; i++){
t = add[i];
add[i] = add[l-i-1];
add[l-i-1] = t;
}
//累加到sum数组:
for (i = 0; i < l; i++){
Sum = add[i]-'0' + sum[i];
sum[i+1] = Sum / 10 + sum[i+1];
sum[i] = Sum % 10;
}
} //处理一:对sum数组从最后面开始寻找第一个非零数,标记
for (i = 1000; i >= 0; i--){
if (sum[i] != 0){
n = i;
break;
}
} //处理二:倒序输出~(yes)
for (i = n; i >= 0; i--)
printf("%d",sum[i]);
printf("\n");
return 0;
}

UVA 424 (13.08.02)的更多相关文章

  1. UVA 465 (13.08.02)

     Overflow  Write a program that reads an expression consisting of twonon-negative integer and an ope ...

  2. UVA 10494 (13.08.02)

    点此连接到UVA10494 思路: 采取一种, 边取余边取整的方法, 让这题变的简单许多~ AC代码: #include<stdio.h> #include<string.h> ...

  3. UVA 10106 (13.08.02)

     Product  The Problem The problem is to multiply two integers X, Y. (0<=X,Y<10250) The Input T ...

  4. UVA 10194 (13.08.05)

    :W Problem A: Football (aka Soccer)  The Problem Football the most popular sport in the world (ameri ...

  5. UVA 253 (13.08.06)

     Cube painting  We have a machine for painting cubes. It is supplied withthree different colors: blu ...

  6. UVA 573 (13.08.06)

     The Snail  A snail is at the bottom of a 6-foot well and wants to climb to the top.The snail can cl ...

  7. UVA 10499 (13.08.06)

    Problem H The Land of Justice Input: standard input Output: standard output Time Limit: 4 seconds In ...

  8. UVA 10025 (13.08.06)

     The ? 1 ? 2 ? ... ? n = k problem  Theproblem Given the following formula, one can set operators '+ ...

  9. UVA 536 (13.08.17)

     Tree Recovery  Little Valentine liked playing with binary trees very much. Her favoritegame was con ...

随机推荐

  1. LINQ 101——分组、Set、转换、Element

    一.Grouping(分组) 例1:对于0-9数按被3整除的结果分组 代码: static void Linq1() { , , , , , , , , , }; var numModBy3 = fr ...

  2. java基础(死循环退出选项)

    java程序中为了程序正常运行,需要给无限循环加入一个退出选项,保证程序的可执行性. import java.util.Scanner; public class { public static vo ...

  3. 零售ERP开发(一)

    随着企业信息化不断提高,各种企业管理系统应用而生:怎么才能开发一套简洁.易用.功能健全的管理系统,尤其是能够帮助企业做出重大策略的系统,一致是我们追求的目标.近些年,接触的Erp系统主要包括国内比较知 ...

  4. Action配置

    Action是一个逻辑控制器,并不直接对浏览器生成响应,而是返回指定逻辑视图(一个字符串). 不推荐在Action的name属性值中使用点(.)和中划线(-),有可能会引发一些未知异常.   1使用A ...

  5. 练习2 E题 - 求奇数的乘积

      Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description 给你n ...

  6. ”ENV_IS_EMBEDDED“解惑以及相关的移植实验

    一.概述( ENV_IS_EMBEDDED的目的) 经典资料 认识     ENV_IS_EMBEDDED只有在CFG_ENV_IS_IN_FLASH或者CFG_ENV_IS_IN_NAND定义了才有 ...

  7. linux下安装MySQL5.6记录

    把之前装的mysql卸载了,准备重新用代码包装一遍,问了一下公司的DBA,他推荐给我mysql-5.6.16版本,说这个版本比较稳定. 按照网上的教程安装,结果就少文件,我还在找原因的时候,同事来找我 ...

  8. UFLDL教程之(三)PCA and Whitening exercise

    Exercise:PCA and Whitening 第0步:数据准备 UFLDL下载的文件中,包含数据集IMAGES_RAW,它是一个512*512*10的矩阵,也就是10幅512*512的图像 ( ...

  9. Mac上RoR环境搭建问题

    昨天一晚上折磨的我啊都快疯掉了. 按照http://railstutorial-china.org方法配制,到rvm requirements这个命令执行时就麻烦事来了. WutekiMacBook- ...

  10. mvc4 to mvc5 and EF5 to EF6

    今天把 后台的mvc 升级到了mvc5和ef6 .出错很正常. 下面是一些错误信息. [A]System.Web.WebPages.Razor.Configuration.HostSection 无法 ...