首页 > 代码库 > HDU:Integer Inquiry
HDU:Integer Inquiry
#include"stdio.h"#include"stdlib.h"#include"string.h"#define N 105int a[N];int main(){ int i,j,n,n1,flag; char ch[N]; scanf("%d",&n); while(n--) { memset(a,0,sizeof(a)); //数组初始化为零 while(scanf("%s",ch),ch[0]!=‘0‘) //输入零结束 { n1=strlen(ch); for(i=n1-1,j=0;i>=0;i--) { a[j++]+=ch[i]-‘0‘; a[j]+=a[j-1]/10; //进位 a[j-1]%=10; //取余 } } flag=0; for(i=N-1;i>0;i--) { if(flag) printf("%d",a[i]); else if(a[i]) { printf("%d",a[i]); flag=1; } } printf("%d\n",a[0]); //输入0时应输出0,错了n多次 if(n) //输出块之间有空行 printf("\n"); } return 0;}
改版 为了一直WA
#include"stdio.h"#include"stdlib.h"#include"string.h"#define N 105int a[N],b[N];int main(){ int i,j,n,n1,flag; char ch[N]; scanf("%d",&n); while(n--) { memset(a,0,sizeof(a)); //数组初始化为零 while(scanf("%s",ch),ch[0]!=‘0‘) //输入零结束 { n1=strlen(ch); memset(b,0,sizeof(b)); for(i=0,j=n1-1;j>=0;j--,i++) b[i]=ch[j]-‘0‘; int h=0; int m; for(i=0;i<n1;i++) { m=a[i]+b[i]+h; a[i]=m%10; h=m/10; } while(h) { a[i]=h%10; n1++; h=h/10; } } flag=0; for(i=N-1;i>0;i--) { if(flag) printf("%d",a[i]); else if(a[i]) { printf("%d",a[i]); flag=1; } } printf("%d\n",a[0]); //输入0时应输出0,错了n多次 if(n) //输出块之间有空行 printf("\n"); } return 0;}
HDU:Integer Inquiry
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。