poj1503
来源:互联网 发布:淘宝微淘在哪里 编辑:程序博客网 时间:2024/05/17 07:33
摘要:
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
0
output:370370367037037036703703703670
基本思路很简单,就是简单的进位,注意最后一次进位要特殊处理.
(1)要特殊注意的几点[1]可能输入是最大的9999…9999(100个9),输入了100行时,最后的结果可能超过100位,最多可以是102位.
(2)注意当输入是00123开头的时候,必须要特殊处理.开头的0(这点难到了我很久,最后才确定可能是这个bug导致不能AC)
#include "stdafx.h"#include "iostream"#include "string.h"using namespace std;int main(){ int sum[104] = {0}; char add[101] = {'0'}; int a,b,c = 0;//c代表可能的进位 int length,top = 102,sumstart = 100; while(1) { memset(add,0,sizeof(add)); cin >> add; if(add[0] == '0'&&strlen(add)==1) break; length = strlen(add); top = 102,c = 0; while(length--)//进行新输入的计算 { a = add[length] - ('0' - 0); b = sum[top]; b = a + b + c;//b是和,c是可能的进位,a是新输入的加数 c = b>=10 ? 1:0;//确定b的进位 sum[top--] = b>=10?b%10:b;//和的存储是从第99位存储最后一位的,这样方便进位 if(b!=0) sumstart = sumstart < top ? sumstart:top+1;//记录最后的位置 } if (c>0)//如果存在最后的进位 { sum[top--] += c; sumstart = sumstart < top ? sumstart:top+1;//记录最后的位置 } } while(sumstart<=102) { cout<<sum[sumstart++]; } return 0;}
0 0
- poj1503
- poj1503
- poj1503
- poj1503
- poj1503
- poj1503
- POJ1503
- POJ1503
- poj1503
- POJ1503
- poj1503
- poj1503
- POJ1503
- POJ1503
- poj1503 高精度
- POJ1503解题报告
- POJ1503 Integer Inquiry
- poj1503 大数相加
- yffs2 移植 linux2.6.37
- Android Studio出现Gradle '×××' project refresh failed 解决办法
- 面向对象 第二课
- maven 环境变量配置
- 解决No “rule to make target `../Database/images/login.png', needed by `debug/qrc_image.cpp'. Stop.”
- poj1503
- 面向对象 第三课
- 2015-09-10
- 面向对象 第四课
- C++和C代码:删除字符串中所有前导空格和所有后导空格,单词之间最多只留一个空格
- init进程【1】——init启动过程
- 犀牛——第10章 正则表达式的模式匹配 10.3
- Intellij IDEA + Spring MVC + Maven 环境搭建
- MySQL 基础操作语法