题目链接:Click here~~
今天无聊,把A + B Problem II用字符串做了一遍。感觉挺有成就感的,所以记录下来吧。
#include <stdio.h>
#include <string.h>
#define M 1005
//#include <stdlib.h>
//#define creat (char *)malloc(sizeof(char))
int main()
{
//char *a,*b,*f;
//a=creat; b=creat; f=creat;/*当数字位数大时会有BUG。后来直接用数组就没BUG了。不知道为什么。*/
char a[M],b[M],f[M];
int z;
scanf("%d",&z);
for(int k=1;k<=z;k++)
{
memset(f,'0',sizeof(f));
scanf("%s%s",a,b);
int i,la=strlen(a)-1,lb=strlen(b)-1;//la代表a[]的下标,lb代表b[]的下标
for(i=0;la>=0 && lb>=0;i++)
{
f[i]+=a[la--]-'0'+b[lb--]-'0';
if(f[i]>'9')
{
f[i+1]++;
f[i]=(f[i]-'0')%10+'0';
}
}
if(la>=0)
{
for(;la>=0;i++)
{
f[i]+=a[la--]-'0';
if(f[i]>'9')
{
f[i+1]++;
f[i]=(f[i]-'0')%10+'0';
}
}
}
if(lb>=0)
{
for(;lb>=0;i++)
{
f[i]+=b[lb--]-'0';
if(f[i]>'9')
{
f[i+1]++;
f[i]=(f[i]-'0')%10+'0';
}
}
}
printf("Case %d:\n%s + %s = ",k,a,b);
for(i=(f[i]=='0'?i-1:i);i>=0;i--)
printf("%c",f[i]);
printf("\n");
if(k!=z)
printf("\n");
}
return 0;
}
分享到:
相关推荐
Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。 这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。 现在,给你...
本人准备2020年保研机试时刷的题目(虽然最后机试取消了,...来自某中流985,在HDU和vjudge平台上大概刷了400道。本文件地图(excel表格)包含了绝大部分我刷过的题目,笔记中具有思路、代码、总结和心得。 大佬勿入!
acm hdu as easy as a+b
大数相加
2、new做两件事,一是分配内存,二是调用类的构造函数 3、new建立的是一个对象,而malloc分配的是一块内存 4、new/delete是保留字,不需要头文
HDU 1022 Train Problem I 附详细思路
300+ AC 代码 。 大数 , 线段树 , 字符串 , dp.....
ACM题库,一些题目和答案,以及解题报告,传上来共享
acm入门之枚举搜索,学校第一次acm培训,包括枚举及其优化,dfs和bfs
杭电OnlineJudge 200-2099的解题报告
hdu 1695 GCD(欧拉函数+容斥原理).docx
从简单入门到偏中等的几个题,线段树很灵活,主要懂了lazy操作,其他的自己yy吧。
HDU的1250,主要是利用高精度加法,但是代码有点繁琐,效率不是很高
杭电ACMhdu1163
投入产出练习的A + B(II) 投入产出练习的A + B(III) 投入产出练习的A + B(IV) 输入输出练习的A + B(V) 投入产出练习的A + B(VI) 投入产出练习的A + B(VII) 投入产出练习的A + B(VIII) 总和...
hdu1001解题报告
HDU1059的代码
hdu 1574 passed sorce
HDU的一题........HDU DP动态规