hdu1047 Integer Inquiry
2015-09-29 19:40
489 查看
/* Integer Inquiry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15874 Accepted Submission(s): 4079 Problem 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 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. This problem contains multiple test cases! The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks. The output format consists of N output blocks. There is a blank line between output blocks. Sample Input 1 123456789012345678901234567890 123456789012345678901234567890 123456789012345678901234567890 0 Sample Output 370370367037037036703703703670 Source East Central North America 1996 */ #include <iostream> #include<string.h> #include<stdio.h> using namespace std; const int maxN=110; int main() { int n,k,i,j,len,next; bool flag; char ch[maxN],ans[maxN]; scanf("%d",&n); while(n--) { flag=false; memset(ans,0,sizeof(ans)); for(i=1; i<=maxN; i++) { scanf("%s",ch); if(strcmp(ch,"0")==0) break; len=strlen(ch); for(j=len-1,k=0; j>=0; j--,k++) { next=0; ans[k]+=ch[j]-'0'; while(ans[k+next]>9)//must handle immediately { ans[k+next]-=10; ans[k+1+next]+=1; next+=1; } } } for(j=maxN-1; j>=0; j--)//ans[] array can meet 0 advancely when you use strlen { if(ans[j]!='\0'&&!flag) flag=true; if(flag) printf("%c",ans[j]+'0'); } if(!flag)//if nothing output before,we must output 0. printf("%c",'0'); printf("\n"); if(n>0) printf("\n"); } return 0; }
相关文章推荐
- SpriteBuilder中的loadAsScene:方法的返回值
- SpriteBuilder中的loadAsScene:方法的返回值
- SpriteBuilder中的loadAsScene:方法的返回值
- UINavigationController popToViewController用法总结
- 提升Android应用视觉效果的10个UI技巧【转】
- Arduino程序基本结构
- 获取图片(uiimage,uiimageview)名字(name)
- General Problem Solving Techniques [Beginner-1]~H - Songs
- anchorPoint,position,frame 深刻理解
- CCEaseRefresh是仿照网易新闻version5.3.4的下拉刷新。继承UIControl, 简单易用.
- HDU 5493 Queue(线段树啊 单点更新)
- 关于StoryBoard的使用(3)两个添加一个UINavigationController||UITabBarController最基本的使用
- iOS 9: UIStackView入门
- iOS —— ASIFormDataRequest
- echarts最新版怎么在项目中使用,针对requireJs路径问题
- 关于StoryBoard的使用(2)两个UIViewController之间的Present
- 《UNIX环境高级编程》示例代码中apue.h头文件的配置
- 03Android UiAutomator UiDevice API 详细介绍
- Servlet RequestDispatcher需要注意的情况
- IOS UI 笔记整理回顾