您的位置:首页 > 编程语言 > C语言/C++

C语言 hdoj1002

2016-01-23 20:53 295 查看
#include"stdio.h"

#include"string.h"

void swap(char *a,int j,int k)

{

char t;

t=a[j];a[j]=a[k];a[k]=t;

}

void swap2(int *a,int j,int k)

{

int t;

t=a[j];a[j]=a[k];a[k]=t;

}

void f2(char *a,char *b,int ka,int kb)

{

int i,t,v;

int kc;

int c[1010]={0},a1[1010]={0},b1[1010]={0};

char c1[1010]={0};

for(i=0;i<ka/2;i++)

swap(a,i,ka-i-1);

for(i=0;i<ka;i++)

a1[i]=a[i]-48;

for(i=0;i<kb/2;i++)

swap(b,i,kb-i-1);

for(i=0;i<kb;i++)

b1[i]=b[i]-48;

if(ka>kb) kc=ka;

else kc=kb;

for(i=0;i<kc;i++)

c[i]=a1[i]+b1[i];

for(i=0;i<kc-1;i++)

{

t=c[i]/10;

v=c[i]%10;

c[i]=v;

c[i+1]+=t;

}

for(i=0;i<kc/2;i++)

swap2(c,i,kc-i-1);

if(c[0]>=10) kc++;

for(i=0;i<kc;)

{

if(c[i]>=10)

{

int ct,cv;

ct=c[i]/10;

cv=c[i]%10;

c1[i]=ct+48;

i++;

c1[i]=cv+48;

i++;

}

else

{

c1[i]=c[i]+48;

i++;

}

}

printf("%s",c1);

}

int main()

{

int t,s=0;

scanf("%d",&t);

getchar();

if(t<1||t>20) return 0;

while(t--)

{

char a[1010]={0},b[1010]={0};

scanf("%s%s",a,b);

printf("Case %d:\n%s + %s = ",++s,a,b);

int ka,kb;

ka=strlen(a);

kb=strlen(b);

f2(a,b,ka,kb);

if(t==0) printf("\n");

else printf("\n\n");

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: