题目:http://acm.hdu.edu.cn/showproblem.php?pid=1002

复习一下大数

模板:

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
#include <ctype.h>
#include <map>
#include <string>
#include <set>
#include <bitset>
#include <utility>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <iostream>
#include <fstream>
#include <list>
using namespace std; const int MAXL = ;
struct BigNum
{
int num[MAXL];
int len;
BigNum()
{
memset(num,,sizeof(num));
}
}; //高精度加法
BigNum Add(BigNum &a, BigNum &b)
{
BigNum c;
int i, len;
len = (a.len > b.len) ? a.len : b.len;
memset(c.num, , sizeof(c.num));
for(i = ; i < len; i++)
{
c.num[i] += (a.num[i]+b.num[i]);
if(c.num[i] >= )
{
c.num[i+]++;
c.num[i] -= ;
}
}
if(c.num[len])
len++;
c.len = len;
return c;
}
void print(BigNum &a) //输出大数
{
int i;
for(i = a.len-; i >= ; i--)
printf("%d", a.num[i]);
printf("\n");
} void Init(BigNum &a, char *s, int &tag) //将字符串转化为大数
{
int i = , j = strlen(s);
if(s[] == '-')
{
j--;
i++;
tag *= -;
}
a.len = j;
for(; s[i] != '\0'; i++, j--)
a.num[j-] = s[i]-'';
} int main(void)
{
//freopen("in.txt","r",stdin);
int T;
char s1[MAXL], s2[MAXL];
scanf("%d",&T);
for(int t=;t<=T;t++)
{
BigNum a,b,c;
memset(s1,,sizeof(s1));
memset(s2,,sizeof(s2));
scanf("%s %s",s1,s2);
int tag=;
Init(a,s1,tag);
Init(b,s2,tag);
c=Add(a,b);
if(t!=)
printf("\n");
printf("Case %d:\n",t);
printf("%s + %s = ",s1,s2);
print(c);
}
return ;
}

普通:

 #include<iostream>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
const int M=;
void xsone(int a[],int b[],int lenz)
{
for(int i=;i<lenz;i++)
a[i]=a[i]+b[i];
int temp=;
for(int i=;i<lenz+;i++)
{
a[i]+=temp;
temp=a[i]/;
a[i]%=;
}
int i;
for(i=lenz+;i>=;i--)
if(a[i]!=)
break;
for(;i>=;i--)
printf("%d",a[i]);
printf("\n");
}
int main()
{
//freopen("in.txt","r",stdin);
int n;
scanf("%d",&n);
for(int i=;i<=n;i++)
{
char sa[M],sb[M];
memset(sa,,sizeof(sa));
memset(sb,,sizeof(sb));
scanf("%s %s",sa,sb);
int lena = strlen(sa);
int lenb = strlen(sb);
int lenz = lena>lenb ?lena :lenb; int a[M],b[M];
memset(a,,sizeof(a));
memset(b,,sizeof(b));
int j;
for(j=;j<lena;j++)
a[lena--j]=sa[j]-'';
for(j=;j<lenb;j++)
b[lenb--j]=sb[j]-'';
printf("Case %d:\n",i);
printf("%s + %s = ",sa,sb);
xsone(a,b,lenz);
if(i!=n)
printf("\n");
}
return ;
}

最新文章

  1. sqlserver下调试sql语句
  2. 【转】mysql对large page的支持
  3. 【Java】变量类接口_学习笔记
  4. c#对数据库访问完应关闭连接
  5. crontab小结
  6. 算法积累:解决如何获取指定文件夹路径或者文件路径下所有子文件后缀为.h .m .c的文本的行数
  7. dstat
  8. eval函数的工作原理
  9. PCA MATLAB
  10. yii phpexcel &lt;转&gt;
  11. js解决通过json传来的timestamp类型时间的显示问题
  12. scala akka 修炼之路5(scala特质应用场景分析)
  13. 在ASP.NET开发中一些单词的标准缩写
  14. NTT中可用素数模数原根表
  15. requests+selenium==requestium模块介绍
  16. bootstrap modal 点击头部移动
  17. 树莓派学习笔记(7):利用bypy实现树莓派NAS同步百度云
  18. lambda 表达式拼接
  19. qt坐标系统与布局的简单入门
  20. ReactNative——UI1.登录界面样式设置

热门文章

  1. php读取excel日期类型数据的例子
  2. Android emulator warning----Emulator window was out of view and was recentred
  3. java之classpath到底是什么
  4. RaddioButton控件
  5. snmptrap使用
  6. IEEE802是一个局域网标准系列
  7. user-agent中的mozilla
  8. 【狼窝乀野狼】Serializer妙手回春
  9. 在唯一密钥属性“value”设置为“Default.aspx”时,无法添加类型为“add”的重复集合项
  10. maven工程的如何进行代码调试