POJ 1503 Integer Inquiry(大数加…
来源:互联网 发布:x77大陆永久域名 编辑:程序博客网 时间:2024/05/17 12:24
题意:不废话,就是多个大数相加,输入0时,终止.
分析:做这一题就是对大数加法的一个熟悉的过程。只要,在输出的时候注意一下最后一行是个0就行。
贴上AC代码:
(164K,0M)
#include<string.h>
#define NM 101
chara[NM],sum[NM+1]={0};
intmain()
{
}
收获:写代码之前曾经看过好几种不同风格的代码,也简单研究并分析了各种大数加法版本,最后还是选定了一个代码风格比较适合我的一段代码,然后按照这个风格敲了段两个大数相加的代码。
大数的运算基本上都是用c语言写的,输入输出的话,用c++确实不知道怎么整
首先,分析一下大数运算的原理吧。
1.输入,定义char数组,不妨设为char a[NM]然后scanf("%s",a);,另一个就命名为char b[NM]scanf("%s",b);
放在一起输入就可以了。另外由于需要用一个数组存放两个大数相加的和,所以这个数组就稍稍开大一点,命名为charsum[NM+1]={0};
这就是输入了,为了后面相加的需要,肯定要求出长度,la=strlen(a);lb=strlen(b);
2.中间写程序的思路,原理就是小学的列式相加了,不再废话,关键是如何实现。
按照这个思路:
for(j=la-1,k=0;j>=0;j--)//由于输入的时候,a[0]存的是最高位,所以这儿按照倒序重新存,为了计算需要。
sum[k++]=a[j]-'0';
for(j=lb-1,k=0;j>=0;j--)
sum[k++]+=b[j]-'0';
l=la>lb?la:lb;
for(j=0;j<l;j++)
if(sum[j]>10)
{
}
if(sum[j])l++;
for(j=l-1;j>=0;j--)
printf("%d",sum[j]);
printf("\n");
这就是我对整个大数计算的全部解剖了,纠结了一天多的时间彻底懂了大数加法
#include<string.h>
#define NM 1001
chara[NM],b[NM],sum[NM+1]={0};
intmain()
{
}
- POJ 1503 Integer Inquiry(大数加…
- 424 - Integer Inquiry
- poj 1716 Integer Intervals(差分…
- ACM: 一题大数求mod poj2635 (…
- leetcode:Integer to Roman + Fin…
- A + B Problem (Big integer versi…
- A * B Problem (Big integer versi…
- ZOJ 1060 (POJ 1094) Sorting It …
- POJ 1005 I Think I Need a Houseb…
- ZZULI_SummerPractice(3) POJ 12…
- POJ 2594 Treasure Exploration(…
- poj 2421 Constructing Roads mst(…
- poj 1135 Domino Effect 单源最短…
- poj 1980 Unit Fraction Partition…
- poj 3280 Cheapest Palindrome dp(…
- poj 2239 Selecting Courses (最大…
- poj 3160 Father Christmas flymou…
- poj 3177 Redundant Paths (双连…
- POJ 2739 Sum of Consecutive Prim…
- POJ 1083 Moving Tables(水题)
- POJ 2262 Goldbach's Conjecture(…
- 经典POJ题目 (转)
- 学编程的人不能不看的好文章(转)
- POJ 1503 Integer Inquiry(大数加…
- 高精度整数模板(转)
- 高精度整数运算改进版(转)
- 大整数的乘法——比较好的算法! (转…
- 大数加法学习笔记及作结
- 高精度运算模板(来自q群)
- POJ 3006 Dirichlet's Theorem on …
- POJ 3094 Quicksum(水题) 涉及到字…
- 对于几种输入方法的总结。