codevs天梯 高精度加法
2017-01-23 18:52
232 查看
题目:
就是求两数相加和(五百位)
分析:
不用说什么吧,就是水过去啦,一开始字符串没开ansistring还错了一个点
代码:
const
maxn=1000;
var
a,b,c:array [0..maxn] of longint;
s1,s2:ansistring;
procedure init;
var
i:longint;
begin
readln(s1);
s2:=copy(s1,1,pos(' ',s1)-1);
for i:=length(s2) downto 1 do
a[length(s2)-i+1]:=ord(s2[i])-48;
delete(s1,1,pos(' ',s1));
for i:=length(s1) downto 1 do
b[length(s1)-i+1]:=ord(s1[i])-48;
end;
procedure main;
var
i,j,k,len:longint;
begin
if length(s1)>length(s2) then
len:=length(s1)
else
len:=length(s2);
for i:=1 to len do
begin
c[i]:=a[i]+b[i]+c[i];
c[i+1]:=c[i] div 10;
c[i]:=c[i] mod 10;
end;
if c[len+1]>0 then
inc(len);
for i:=len downto 1 do
write(c[i]);
end;
begin
init;
main;
end.
就是求两数相加和(五百位)
分析:
不用说什么吧,就是水过去啦,一开始字符串没开ansistring还错了一个点
代码:
const
maxn=1000;
var
a,b,c:array [0..maxn] of longint;
s1,s2:ansistring;
procedure init;
var
i:longint;
begin
readln(s1);
s2:=copy(s1,1,pos(' ',s1)-1);
for i:=length(s2) downto 1 do
a[length(s2)-i+1]:=ord(s2[i])-48;
delete(s1,1,pos(' ',s1));
for i:=length(s1) downto 1 do
b[length(s1)-i+1]:=ord(s1[i])-48;
end;
procedure main;
var
i,j,k,len:longint;
begin
if length(s1)>length(s2) then
len:=length(s1)
else
len:=length(s2);
for i:=1 to len do
begin
c[i]:=a[i]+b[i]+c[i];
c[i+1]:=c[i] div 10;
c[i]:=c[i] mod 10;
end;
if c[len+1]>0 then
inc(len);
for i:=len downto 1 do
write(c[i]);
end;
begin
init;
main;
end.
相关文章推荐
- code[vs] 3116 高精度练习之加法
- codevs 高精度加法 3116
- codevs 3116 高精度练习之加法
- codevs 3116 高精度练习之加法
- codevs3115 高精度练习之加法
- 高精度入门(减法、加法、乘法)之 CODE[VS] 3115、3116、3117
- wikioi天梯之3116 高精度练习之加法
- codevs 天梯 白银级
- CODE【VS】3118 高精度练习之除法(大数除以大数模板)
- CODE[VS] 天梯 1204 寻找子串位置
- codevs天梯 素数判定 水题
- codevs天梯N皇后 dfs
- codevs 高精度减法 3115
- CODE[VS] 天梯 1205 单词翻转
- codevs 3119 高精度练习之大整数开根
- codevs 1994 排队 排列组合+高精度
- codevs天梯 乘积最大
- codevs 天梯 蛇形矩阵 暴力
- code[vs] 3117 高精度练习之乘法