Integer Inquiry -TJU1112
作为最简单的高精度加法,要注意的是如下几点,
第一,因为是数位达到上百位的大数,所以只能用字符串数组来存贮。
第二,为了方便之后的相加操作,应该把字符串数组逆序转化为一个整型数组。
第三,在控制进位的时候,应该用一个工具变量,假设为h,则h初始值为0.之后在循环体里h是等于对应位的两个数相加之后/10,使得下一次循环时,高位可以进位。
第四,因为已经把原来读取的大数用字符数组读入后又逆序复制到一个新的整型数组里,所以此时下标小的保存的就是低位,这个时候再控制循环变量从低位一直加到高位,
多余的位都是0,但是没关系,继续相加(如果不这样的话,最大的那一位可能会出现无法进位的情况,即读入的数是多少位,最后结果就是多少
位,显然是错误的)。。。
第五。在相加的时候,可以不必一位一位相加,可以4位4位相加,即万进制加法,其实万进制是很方便的一个方法,之后还会用万进制乘法,在节省时间方面是很有用的。
下面是AC代码,还是采用一位一位相加,采用的基本上是上述思想
注意此题输入结束标志:输入的那一行有且只有一个0结束,不是输入的第一个字符为0为结束标志,我原先判断结束的标志是当输入的一行字符串中第一个为0时程序结束,为此WA了好几次,在不是结束行中有可能会出现第一个字符为0.故判断结束时不能单单判断第一个字符是否为0,而应进一步说明那一行只有一个字符并接为0;
#include <iostream>
#include<cstring>
#include <cstdio>
using namespace std;
int a[]={},b[]={};
char str[];
int main()
{
int len1;
int j,i;
gets(str);
int len=strlen(str);
for(i=,j=len-;j>=;j--,i++)
b[i]=str[j]-'';
while()
{
if(str[]==''&&str[]=='\0')//注意判断结束的标志
break;
int h=;
int m; for(j=;j<len;j++)
{
m=a[j]+b[j]+h;
a[j]=m%;
h=m/;
}
while(h)
{
a[j]=h%;
len++;
h/=;
}
gets(str);
len1=strlen(str);
for(i=,j=len1-;j>=;j--,i++)
b[i]=str[j]-'';
}
int p;
for(p=len-;p>=;p--)
cout<<a[p];
cout<<endl;
return ;
}
#include<iostream>
#include<cstring>
using namespace std;
#define N 110
int main()
{
int sum[N]={};
char str[N];
while(cin>>str)
{
if(str[]==''&&str[]=='\0')//注意判断结束的标志
break;
int num[N]={};
int len=strlen(str);
for(int i=;i<len;i++)
num[i]=str[len--i]-'';
for(int i=;i<N;i++)
{
sum[i]+=num[i];
if(sum[i]>)
{
sum[i]-=;
sum[i+]+=;
}
//sum[i+1]+=(sum[i]+num[i])/10;
//sum[i]=(sum[i]+num[i])%10;
}
}
int k=N-;
while(sum[k]==) k--;
if(k<)
cout<<;
else
for(;k>=;k--)
cout<<sum[k];
cout<<endl;
return ;
}
C++代码 :
WA 好几次 没有这条语句的后半部分 if(str[0]=='0'&&str[1]=='\0'),即str[1]=='\0' 一直WA 很苦闷 别的OJ 能通过去的 附代码(AC)
Integer Inquiry -TJU1112的更多相关文章
- hdu acm-1047 Integer Inquiry(大数相加)
Integer Inquiry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- Integer Inquiry【大数的加法举例】
Integer Inquiry Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 27730 Accepted: 10764 ...
- 424 - Integer Inquiry
Integer Inquiry One of the first users of BIT's new supercomputer was Chip Diller. He extended his ...
- hdu1047 Integer Inquiry
/* Integer Inquiry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Integer Inquiry
Integer Inquiry Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Sub ...
- hdu 1047 Integer Inquiry
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1047 Integer Inquiry Description One of the first use ...
- UVa 424 Integer Inquiry
之前杭电上也做过a + b的高精度的题,不过这道题的区别是有多组数据. 之前做的时候开了3个字符数组a,b,c,在计算的时候还要比较a,b长度,短的那个还要加'0',还设置了一个add来存放进位. 现 ...
- Poj 1503 Integer Inquiry
1.链接地址: http://poj.org/problem?id=1503 2.题目: Integer Inquiry Time Limit: 1000MS Memory Limit: 1000 ...
- hdoj 1047 Integer Inquiry
Integer Inquiry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
随机推荐
- Fix the “No Private Key” Error Message
This article will show you how to correct the “No Private Key” error message in Windows Internet Inf ...
- HTML是什么
HTML(Hyper Text Mark-up Language )即超文本标记语言,是 WWW 的描述语言,由 Tim Berners-lee提出.设计 HTML 语言的目的是为了能把存放在一台电脑 ...
- 让show parameter显示隐含参数(11G)
1.创建视图show_hidden_v$parameter create or replace view show_hidden_v$parameter (INST_ID, NUM , NAME , ...
- iphone 语音备忘录 同步问题
iphone 是很人性化的,但itune是反人类的. 我想同步电话里的语音备忘录,结果有几个记录在itunes里面是不显示的,无法同步出来. 找了很多解决方法,最后找了ifunbox才搞定.
- j2ee Servlet、Filter、Listener
首先,JSP/Servlet规范中定义了Servlet.Filter.Listener这三种角色,并没有定义Interceptor这个角色,Interceptor是某些MVC框架中的角色,比如Stru ...
- Topcoder SRM 597
妈蛋第一场tc就掉分,提交了第一个题的时候就注定悲剧要发生了,妈蛋没考虑0就直接%了,真的是人傻见识又少,第二题最后有了一点思路,没时间写了,可能也不是很准确,第三题想了小会儿效果为0! 然后第一题傻 ...
- 最大权闭合图hdu3996
定义:最大权闭合图:是有向图的一个点集,且该点集的所有出边都指向该集合.即闭合图内任意点的集合也在改闭合图内,给每个点分配一个点权值Pu,最大权闭合图就是使闭合图的点权之和最大. 最小割建边方式:源点 ...
- ASP.NET的一般处理程序对图片文件的基本操作
以一个小项目为例: 验证码: public class VerifyCodeHelper { public VerifyCodeHelper() { this.ran = new Random(); ...
- MVC模型 简介
MVC (Modal View Controler)本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用 ...
- ORA-12154的原因
一个很难想到的引起ORA-12154的原因 使用OracleClient.OracleConnection时(我连的是Oracle 9i,其他版本未知),如果你的执行目录太长或者有括号 ...