九度OJ1198 a+b 【高精度整数】
题目地址:http://ac.jobdu.com/problem.php?pid=1198
- 题目描述:
-
实现一个加法器,使其能够输出a+b的值。
- 输入:
-
输入包括两个数a和b,其中a和b的位数不超过1000位。
- 输出:
-
可能有多组测试数据,对于每组数据,
输出a+b的值。
- 样例输入:
-
2 6
10000000000000000000 10000000000000000000000000000000
- 样例输出:
-
8
10000000000010000000000000000000
#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 【高精度整数】的更多相关文章
- 九度OJ 1514 数值的整数次方【算法】
题目地址:http://ac.jobdu.com/problem.php?pid=1514 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的expo ...
- 九度OJ 1190:大整数排序 (大数运算、排序)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3219 解决:1467 题目描述: 对N个长度最长可达到1000的数进行排序. 输入: 输入第一行为一个整数N,(1<=N<=1 ...
- 九度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总共有六种不 ...
- 九度oj 题目1373:整数中1出现的次数(从1到n整数中1出现的次数)
题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU发来求助信,希望亲们能帮帮他.问题是:求出1~13的整数中1出现的次数,并算出100~130 ...
- 九度OJ 1125:大整数的因子 (大数运算)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:974 解决:494 题目描述: 已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k. ...
- 九度oj 题目1063:整数和
题目1063:整数和 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4043 解决:2638 题目描述: 编写程序,读入一个整数N.若N为非负数,则计算N到2N之间的整数和:若N为一个负数 ...
- 剑指Offer - 九度1508 - 把字符串转换成整数
剑指Offer - 九度1508 - 把字符串转换成整数2014-02-06 23:46 题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 输入: 输入可能包含多个测试样例 ...
- 剑指Offer - 九度1373 - 整数中1出现的次数(从1到n整数中1出现的次数)
剑指Offer - 九度1373 - 整数中1出现的次数(从1到n整数中1出现的次数)2014-02-05 23:03 题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直 ...
- 剑指Offer - 九度1514 - 数值的整数次方
剑指Offer - 九度1514 - 数值的整数次方2013-11-30 00:49 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponen ...
随机推荐
- iOS stretchableImageWithLeftCapWidth 图片放大不变形
转载自:http://www.cnblogs.com/bandy/archive/2012/04/25/2469369.html - (UIImage *)stretchableImageWithLe ...
- CSDN上下载的一些关于Android程序调用Webservice执行不成功的问题
今天从书上和CSDN上找了几个关于android调用webservice的样例,这些样例从代码来看.没不论什么错误,可是就是执行不成功.分析了android调用web接口的写法,发现这些样例在调用的时 ...
- 解决content is not allowed in prolog问题
将xml文档用notepad++以UTF-8无BOM格式编码保存便可以了
- 正则匹配ab不匹配aab
var a = "aababaabababababaab"; a.replace(/(^|[^a])(ab)+/g, "$1"); var a = " ...
- C# 之 日常积累(二)
主要涉及(1)数字前补0:(2)去掉decimal类型后边无效的0相关问题. 1.数字前补0 ; ) { returnnumber.ToString(); } else { returnnumber. ...
- mysql与java的之间的连接
package cn.hncu; //注意,以下都是sun公司的接口(类)---这样以后换成Oracle等其它数据库,代码不用动import java.sql.Connection;import ja ...
- AT-Activity
关于Activity的粗略翻译 原地址:Activity 类概述: Activity是独立的.突出的可被用户操作的东西.几乎所有的Activity都是与用户进行交互的,所以这些Activity会很小 ...
- Android NDK调试方式之一: adb logcat
查看程序执行过程中所打印的log信息,用于辅助调试排除代码错误. 一.采用NDK安装包下Samples/hello-jni工程做实验 1)修改jni/hello-jni.c文件 #include &l ...
- java 过滤器Filter中chain.doFilter()之前和之后代码的执行顺序
过滤器拦截到响应url的请求后会先执行doFilter()方法中chain.doFilter()之前的代码,然后执行下一个过滤器或者servelt.紧接着执行chain.doFilter()之后的代码 ...
- 用grunt搭建自动化的web前端开发环境-完整教程
原稿:http://www.cnblogs.com/wangfupeng1988/p/4561993.html#!comments jQuery在使用grunt,bootstrap在使用grunt,百 ...