题目地址:http://ac.jobdu.com/problem.php?pid=1198

题目描述:

实现一个加法器,使其能够输出a+b的值。

输入:

输入包括两个数a和b,其中a和b的位数不超过1000位。

输出:

可能有多组测试数据,对于每组数据,

输出a+b的值。

样例输入:
2 6
10000000000000000000 10000000000000000000000000000000
样例输出:
8
10000000000010000000000000000000
来源:
2010年华中科技大学计算机研究生机试真题
#include <stdio.h>
#include <string.h> typedef struct biginteger{
int digit[1000];
int size;
}BigInteger; void StrToInt (char str[], BigInteger * big){
int len = strlen (str);
int a, b, c, d, i, j;
i = 0;
while (len >= 4){
a = str[len - 4] - '0';
b = str[len - 3] - '0';
c = str[len - 2] - '0';
d = str[len - 1] - '0';
big->digit[i] = a * 1000 + b * 100 + c * 10 + d;
len -= 4;
++i;
}
if (len > 0){
big->digit[i] = 0;
for (j=0; j<len; ++j){
big->digit[i] = big->digit[i] * 10 + str[j] - '0';
}
++i;
}
big->size = i;
} void Add (BigInteger * a, BigInteger * b){
int carry = 0;
int sum = 0;
int len = (a->size > b->size) ? a->size : b->size;
int i;
for (i=0; i<len; ++i){
sum = a->digit[i] + b->digit[i] + carry;
carry = sum / 10000;
a->digit[i] = sum % 10000;
}
if (carry > 0){
a->digit[i] = carry;
a->size = i + 1;
}
else{
if (a->size < b->size)
a->size = b->size;
}
} int main(void){
BigInteger a, b;
char str1[1001], str2[1001];
int index; while (scanf ("%s%s", str1, str2) != EOF){
memset (a.digit, 0, sizeof(a.digit));
memset (b.digit, 0, sizeof(b.digit));
a.size = b.size = 0;
StrToInt (str1, &a);
StrToInt (str2, &b);
Add (&a, &b);
index = a.size - 1;
printf ("%d", a.digit[index]);
--index;
while (index >= 0){
printf ("%04d", a.digit[index]);
--index;
}
putchar ('\n');
} return 0;
}

九度OJ1198 a+b 【高精度整数】的更多相关文章

  1. 九度OJ 1514 数值的整数次方【算法】

    题目地址:http://ac.jobdu.com/problem.php?pid=1514 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的expo ...

  2. 九度OJ 1190:大整数排序 (大数运算、排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3219 解决:1467 题目描述: 对N个长度最长可达到1000的数进行排序. 输入: 输入第一行为一个整数N,(1<=N<=1 ...

  3. 九度oj 题目1084:整数拆分 清华大学2010年机试题目

    题目描述: 一个整数总可以拆分为2的幂的和,例如:7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1总共有六种不 ...

  4. 九度oj 题目1373:整数中1出现的次数(从1到n整数中1出现的次数)

    题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU发来求助信,希望亲们能帮帮他.问题是:求出1~13的整数中1出现的次数,并算出100~130 ...

  5. 九度OJ 1125:大整数的因子 (大数运算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:974 解决:494 题目描述: 已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k. ...

  6. 九度oj 题目1063:整数和

    题目1063:整数和 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4043 解决:2638 题目描述: 编写程序,读入一个整数N.若N为非负数,则计算N到2N之间的整数和:若N为一个负数 ...

  7. 剑指Offer - 九度1508 - 把字符串转换成整数

    剑指Offer - 九度1508 - 把字符串转换成整数2014-02-06 23:46 题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 输入: 输入可能包含多个测试样例 ...

  8. 剑指Offer - 九度1373 - 整数中1出现的次数(从1到n整数中1出现的次数)

    剑指Offer - 九度1373 - 整数中1出现的次数(从1到n整数中1出现的次数)2014-02-05 23:03 题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直 ...

  9. 剑指Offer - 九度1514 - 数值的整数次方

    剑指Offer - 九度1514 - 数值的整数次方2013-11-30 00:49 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponen ...

随机推荐

  1. lunix机器的jdk安装

    本来不想写这篇博客的,写在这儿只是作为自己的笔记,jdk安装了千万编,但是踩过的坑老是不记,看别人的博客又各种不爽,所有索性自己写一个得了.老规矩,无图. Oracle版本的jdk下载地址:http: ...

  2. 《JavaScript高级程序设计》 读书笔记(一)

    标签的位置 按照传统的做法,所有<script>元素都应该放在页面的<head>元素中,例如: <!DOCTYPE html> <html> <h ...

  3. 博客转移到lyso.me

    博客转移到http://lyso.me :)

  4. 安装builderRobot到Rational Functional Tester和Performance Tester

    最近研究安装builder,稍微总结一下,以后继续补充: 1. Robot采用专业的测试脚本语言, 从而导致需要学习专门的API以及专门的语法外, 用进程化的Visual Basic作为脚本语言, 导 ...

  5. 怎样加入� android private libraries 中的包的源码

    先上图: 这里以加入� afinal_0.5.1_bin.jar 为例. 第一步:加入�jar包到libs里面,系统自己主动把jar载入到android private libraries中: 第二步 ...

  6. Linux上安装JDK环境变量配置

    http://blog.chinaunix.net/uid-12115233-id-3304951.html Jdk: jdk-6u1-linux-i586 Tomcat: apache-tomcat ...

  7. 文件和目录之utime函数

    一个文件的访问和修改时间可以用utime函数更改. #include <utime.h> int utime( const char *pathname, const struct uti ...

  8. js代码 设为首页 加入收藏

    // JavaScript Document // 加入收藏 <a onclick="AddFavorite(window.location,document.title)" ...

  9. Session Store

    Session Store Configuration Session Usage Flash Data Session Drivers Configuration Since HTTP driven ...

  10. DBCP数据源

    DBCP数据源是Apache软件基金组织下的开源连接池实现,需要两个jar文件:Commons-dbcp.jar 连接池的实现和Commons-pool.jar 连接池实现的依赖库