POJ 1503

http://poj.org/problem?id=1503

对于这个题我也是醉了,因为最开始是有学长和我们说过这个题目的,我以为我记得题目是什么意思,也就没看题目,结果按案例去理解题意,结果WA了一晚上,我也是醉醉哒。

最后今天才在discuss发现是我的理解题意错了,改下,就对了。给我一个很大的教训。。。。。

题意很简单,,就是一组大整数的加法而已,终止的标志就是只有一个0输入。

 1 #include <stdio.h>
 2 #include <string.h>
 3
 4 char str[150]={0};
 5 int a[150]={0},sum[150]={0};
 6
 7 int main()
 8 {
 9     while(scanf("%s",str)&&strcmp(str,"0")){
10         int len=strlen(str);
11         for(int i=0,j=len-1;i<len;i++,j--)    //我用一个a数组的目的就是反正前导0的出现。因为我的数据是从开始到末尾是倒过来的,所以前导0在之后的加法中也是在后面了,不起任何作用。
12             a[i]=str[j]-‘0‘;
13         for(int i=0;i<=120;i++){
14             sum[i]+=a[i];
15             if(sum[i]>=10) {
16                 sum[i+1]++;
17                 sum[i]-=10;
18             }
19         }
20         memset(str,0,sizeof(str));      //初始化,反正之后的str数组较小,只替代了部分之前的str数组。
21     }
22     for(int i=149,j=150;i>0;i--){
23             if(sum[i]==0) {
24                 j--;
25             }
26         if(i!=j)printf("%d",sum[i]);
27     }
28     printf("%d\n",sum[0]);
29     return 0;
30 }
时间: 2024-10-04 17:12:32

POJ 1503的相关文章

POJ 1503 Integer Inquiry(大数相加,java)

题目 我要开始练习一些java的简单编程了^v^ import java.io.*; import java.util.*; import java.math.*; public class Main { /** * @param args */ public static void main(String[] args) throws Exception { // 定义并打开输入文件 Scanner cin = new Scanner(System.in); BigInteger a, sum

poj 1503 Integer Inquiry(多个大数相加)

题目链接:http://poj.org/problem?id=1503 Description 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 supercomput

POJ 1503 Integer Inquiry

http://poj.org/problem?id=1503 题意:给出n个数,计算和. 思路: 基础的大整数加法题. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <cmath> 6 #include<vector> 7 using namespace std; 8 9 const in

POJ 1503 Integer Inquiry 大数 难度:0

题目链接:http://poj.org/problem?id=1503 1 import java.io.*; 2 import java.math.BigInteger; 3 import java.util.Scanner; 4 5 public class Main { 6 public static void main(String []args) throws IOException{ 7 Scanner scanner=new Scanner(System.in); 8 BigInt

POJ 1503 大整数

之前做的大整数,都是一位一位操作. 优化方案:压缩方案. 模板: + - *  操作符重载 #include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<string> #include<vector> using namespace std; struct bigint{ // only

POJ题目分类推荐 (很好很有层次感)

著名题单,最初来源不详.直接来源:http://blog.csdn.net/a1dark/article/details/11714009 OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 3094) 初期: 一.基本算法: 枚举. (POJ 1753,POJ 2965) 贪心(POJ 1328,POJ 2109,POJ 2586) 递归和分治法. 递

POJ 刷题指南

OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 3094) 初期: 一.基本算法: 枚举. (POJ 1753,POJ 2965) 贪心(POJ 1328,POJ 2109,POJ 2586) 递归和分治法. 递推. 构造法.(POJ 3295) 模拟法.(POJ 1068,POJ 2632,POJ 1573,POJ 2993,POJ 2996) 二

高精度计算(一):大整数加法

C/C++中的int 类型能表示的范围是-231~231 – 1.unsigned 类型能表示的范围是 0 ~232 – 1,即 0~4294967295.所以,int 和unsigned 类型变量,都不能保存超过10 位的整数.有时我们需要参与运算的数,可能会远远不止10 位,例如要求100!的精确值.即便使用能表示的很大数值范围的double 变量,但是由于double变量只有64 位,double 变量的精度也不足以表示一个超过100 位的整数.一般我们称这种基本数据类型无法表示的整数为大

POJ题目推荐(转载)

POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉.2.标记为A and B的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目.3.列表中大约有70个题目.大家选做其中的50道,且每类题目有最低数量限制.4.这里不少题目在BUPT ACM FTP上面都有代码,请大家合理利用资源.5.50个题目要求每个题目都要写总结,养成良好的习惯.6.这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅