首页 > 代码库 > 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;}
View Code

 

HDU:Integer Inquiry