UVA424 (高精度)
2015-07-26 15:59
295 查看
题目:
One of the first users of BIT's new supercomputer was Chip Diller. He extended his exploration of powers of 3 to go from 0 to 333 and he explored taking various sums of those numbers.
``This supercomputer is great,'' remarked Chip. ``I only wish Timothy were here to see these results.'' (Chip moved to a new apartment, once one became available on the third floor of the Lemon Sky apartments on Third Street.)
The input will consist of at most 100 lines of text, each of which contains a single VeryLongInteger. Each VeryLongInteger will be 100 or fewer characters in length, and will only contain digits (no VeryLongInteger will be negative).
The final input line will contain a single zero on a line by itself.
Your program should output the sum of the VeryLongIntegers given in the input.
370370367037037036703703703670
题目大意:每行为一个数字,对输入的所有数字相加。
方法:从后位算起,将递进的数值累加到前一位然后再实现相加。
由于最后可能会出现累加的值没有递进的情况,所以在输入0时将最后累加的数组加一次0实现递进,然后再break。
代码:
One of the first users of BIT's new supercomputer was Chip Diller. He extended his exploration of powers of 3 to go from 0 to 333 and he explored taking various sums of those numbers.
``This supercomputer is great,'' remarked Chip. ``I only wish Timothy were here to see these results.'' (Chip moved to a new apartment, once one became available on the third floor of the Lemon Sky apartments on Third Street.)
Input
The input will consist of at most 100 lines of text, each of which contains a single VeryLongInteger. Each VeryLongInteger will be 100 or fewer characters in length, and will only 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题目大意:每行为一个数字,对输入的所有数字相加。
方法:从后位算起,将递进的数值累加到前一位然后再实现相加。
由于最后可能会出现累加的值没有递进的情况,所以在输入0时将最后累加的数组加一次0实现递进,然后再break。
代码:
#include<stdio.h> #include<string.h> int main () { char a[150]; int b[150]={0}; int i,j,k,temp; while(scanf("%s",a)) { if(a[0]=='0') { for (i=149;b[i]==0;i-- ); for(;i>=0;i--) { temp=b[i]; b[i]=temp%10; b[i+1]+=temp/10; } break; } for(i=strlen(a)-1,j=0;i>=0;i--,j++) { temp=b[j]+(a[i]-'0'); b[j]=temp%10; b[j+1]+=temp/10; } } for(i=149;b[i]==0;i--); for(;i>=0;i--) { printf("%d",b[i]); } printf("\n"); return 0; }
相关文章推荐
- NOIP提高组2010 乌龟棋
- astah简体中文版本
- LeetCode Letter Combinations of a Phone Number 电话号码组合
- leetcode[116]:Populating Next Right Pointers in Each Node
- 关于 使用post 方法出现headers already sent问题
- JS 解析XML文件
- INT_MAX,INT_MIN,isdigit函数
- 轻松上Google
- iOS编程 悬浮界面的添加
- 如何设定tomcat启动时JVM内存大小,以免出现java.lang.OutOfMemoryError
- Android特效View之二之 闪闪发光Shimmer字体特效
- HDOJ_Problem Archive_1005_Number Sequence
- 获取美版的google play store
- BZOJ1068
- The Combinatorica Project 组合数学
- Leetcode(62)(63) Unique Paths I II
- 在.NET程序中实现HttpServer功能
- zoj1201
- JAVA基础之理解JNI原理
- Fragment FragmentManager FragmentTransaction 详解