大数加法——DLUT热身赛题解
2012-12-19 20:55
197 查看
在网上看了很多版本的大数加法,本来很简单的一个问题,就随便说说啦。
热身赛题目大致意思为:输入 a+b;计算他们的和;其实就是一个模拟大数加法的过程。废话少说,直接上代码。
热身赛题目大致意思为:输入 a+b;计算他们的和;其实就是一个模拟大数加法的过程。废话少说,直接上代码。
#include <stdio.h> #include <stdbool.h> #include <string.h> #define MAX_LEN 100 int an1[MAX_LEN]; int an2[MAX_LEN]; char sLine1[MAX_LEN]; char sLine2[MAX_LEN]; int main() { while(scanf("%[0-9]+%s",sLine1,sLine2) ==2) //输入把我搞死了,用的EOF,回车你懂得 { getchar(); int i,j,len_max; memset(an1,0,sizeof(an1)); memset(an2,0,sizeof(an2)); int len1=strlen(sLine1); j=0; for(i=len1-1; i>=0; i--) an1[j++]=sLine1[i]-'0'; int len2=strlen(sLine2); j=0; for(i=len2-1; i>=0; i--) an2[j++]=sLine2[i]-'0'; len_max = len1 > len2 ? len1 : len2; for(i=0; i<len_max; i++) { an1[i]+=an2[i]; if(an1[i]>=10) { an1[i]-=10; an1[i+1]++; // if(i==len_max-1) // len_max++; } } bool output=false; //程序还待改进,希望大家给出建议 for(i=len_max; i>=0; i--) { if(output) printf("%d",an1[i]); else if(an1[i]) { printf("%d",an1[i]); output=true; } } putchar('\n'); } return 0; }
相关文章推荐
- HDOJ 1002:大数加法
- 斐波那契问题,基于大数加法
- 哈理工1701 小胖子的Fibonacci 【字典树+大数加法】
- POJ 1053 Integer Inquiry (大数加法,还是Java大法好)
- 大数加法
- 51nod1005 大数加法
- 大数加法
- ACM简单处理大数加法方法
- HDOJ1002大数加法
- 大数加法模板
- 杭电1002题,大数加法问题C++版
- c++ 大数加法
- 51nod 1005 大数加法
- HDU-多个大数加法问题
- 大一下期末考试 : 大数存储 超长整数的加法
- Java大数模板——加法、减法、乘法、除法、开方、求余
- 提取数字字段和大数加法-批处理应用
- 效率(大数加法)——《C++编程风格》读书笔记(五)
- C语言之大数加法
- 51Nod 1005 大数加法