HDOJ1002
2016-04-26 17:43
274 查看
#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; }
相关文章推荐
- 【记在开发中的成长体会】
- 设计模式之---代理模式(Proxy Pattern)
- linux /etc/profile 对空格敏感。。。。
- 天涯[经济杂谈]一位创业者的商海感悟(语录版,连载中,持续更新)【力荐】
- poj 3608(旋转卡壳求解两凸包之间的最短距离)
- 集成融云Android SDK实现在群聊/讨论组中@人的功能(一)
- 欢迎使用CSDN-markdown编辑器
- redmine安装包数据库连接
- 【概念】SVG(1)
- mongodb 限制ip访问
- 对Handler工作原理的分析
- 【算法逻辑】保持字符串内符号位置不变,其他字符随机变化
- xshell 中 alt+. 快捷键无法使用
- C++第四次作业
- Android_实用技术(3)—— Service简析(Ⅲ)
- mongodb 限制ip访问
- mongodb 限制ip访问
- c文件操作
- git文件内容没变但status显示不同的解决方案
- 开发一定要买台苹果电脑,最好是苹果笔记本