Gravatar
牛先生
积分:238
提交:117 / 421
本蒟蒻不会加法,hhh

Gravatar
夜莺
积分:1195
提交:424 / 1048
程序真水

Gravatar
eeeee
积分:4
提交:2 / 3
ac答案
#include<bits/stdc++.h>
using namespace std;
int main(){
freopen("add.in","r",stdin);
freopen("add.out","w",stdout);
char a[111],b[111];
int a1[111],b1[111],c1[111],lena,lenb,lenc,x;
memset(a1,0,sizeof(a1));
memset(b1,0,sizeof(b1));
memset(c1,0,sizeof(c1));
gets(a);
gets(b);
lena=strlen(a);
lenb=strlen(b);
for (int i=0;i<lena;i++)
{
a1[lena-i]=a[i]-48;
}
for(int i=0;i<lenb;i++)
{
b1[lenb-i]=b[i]-48;
}
lenc=1;
x=0;
while(lenc<=lena||lenc<=lenb)
{
c1[lenc]=a1[lenc]+b1[lenc]+x;
x=c1[lenc]/10;
c1[lenc]%=10;
lenc++;
}
c1[lenc]=x;
if(c1[lenc]==0)
{
lenc--;
}
for(int i=lenc;i>=1;i--)
{
cout<<c1[i];
}
cout<<endl;
}

题目 37 增强的加法问题
2018-07-01 20:42:52
Gravatar
snake
积分:328
提交:135 / 502
边界的进位.gif

题目 37 增强的加法问题
2017-11-02 09:47:58
Gravatar
delta_saberlover
积分:91
提交:29 / 34
这道题Pascal有两种算法过,一种是新建Boolean判定进位,第二种思想与前一种相似但是个人感觉更精简,不过思路也更难(zhi)想(zhang)。如下:
Program cogs;
Var
Cal:array[1..256] of char;
a,b:string;
carry:boolean;
c:integer;
Procedure
Plus(m,n:string);
Var
i,j,k,sum:integer;
Begin
i:=length(m);
j:=length(n);
k:=0;
carry:=false;
while (i>=1) or (j>=1) do
begin
k:=k+1;
if i>=1 then
begin
sum:=ord(m[i])-48;
i:=i-1;
end
else sum:=0;
if j>=1 then
begin
sum:=sum+ord(n[j])-48;
j:=j-1;
end;
if carry then
sum:=sum+1;
if sum>9 then
begin
carry:=true;
Cal[k]:=chr(sum-10+48);
end
else begin
carry:=false;
Cal[k]:=chr(sum+48);
end;
end;
if carry then
begin
k:=k+1;
Cal[k]:='1';
end;
while k>=1 do
begin
write(Cal[k]);
k:=k-1;
end;
end;
Begin
assign(input,'add.in');
assign(output,'add.out');
reset(input);
rewrite(output);
readln(a);
readln(b);
Plus(a,b);
close(input);
close(output)
end.

或者是
Program high_acplus;
Var
a:array[1..150] of integer;
i,j:integer;
s1,s2,s3:string;
begin
for i:=1 to 150 do
a[i]:=0;
assign(input,'add.in');
assign(output,'add.out');
reset(input);
rewrite(output);
readln(s1);
readln(s2);
if(length(s1)<length(s2))or((length(s1)=length(s2))and(s1<s2)) then
begin
s3:=s1;
s1:=s2;
s2:=s3;
end;
for i:=1 to length(s1) do
a[i]:=ord(s1[length(s1)-i+1])-ord('0');
for j:=1 to length(s2) do
a[j]:=a[j]+(ord(s2[length(s2)-j+1])-ord('0'));
for j:=1 to length(s1) do
if (a[j]>=10) then
begin
a[j]:=a[j] mod 10;
a[j+1]:=a[j+1]+1;
end;
if (a[length(s1)+1]<>0) then
for i:=(length(s1)+1) downto 1 do
write(a[i])
else
for i:=(length(s1)) downto 1 do
write(a[i]);
close(input);
close(output)
end.

题目 37 增强的加法问题
2017-08-18 23:44:23
Gravatar
NBWang
积分:209
提交:90 / 198
记得清零初值,清零,清零,清零!!!!!!!!!!!!!!!!!!!!!!!!!!

Gravatar
Hzoi_Go灬Fire
积分:2029
提交:666 / 1225
一晚上手写大整数封装,加减乘除大小等加上取模,不要白不要

Gravatar
不会起名怪我咯
积分:41
提交:11 / 20
呵呵

Gravatar
加藤惠
积分:106
提交:49 / 237

Gravatar
瑆の時間~無盡輪迴·林蔭
积分:3363
提交:807 / 1554
memset用时要加#include《string.h》

Gravatar
GaoErFu
积分:493
提交:289 / 1158

Gravatar
rvalue
积分:720
提交:213 / 573
回复 @OhYee :
你需要快读函数

题目 37 增强的加法问题
2016-04-02 11:09:33
Gravatar
Go灬Fire
积分:3414
提交:1738 / 3778

Gravatar
霓虹灯下的码农
积分:62
提交:18 / 93
第四个点WA是怎么回事?

Gravatar
霓虹灯下的码农
积分:62
提交:18 / 93
回复 @Letter zZZz :
这是两个不同的库

题目 37 增强的加法问题
2015-11-05 21:18:36
Gravatar
cp
积分:59
提交:42 / 112
测试数据中不含负数,不用考虑负数情况

题目 37 增强的加法问题
2015-08-12 22:02:17
Gravatar
OhYee
积分:58
提交:19 / 91
在怎么读取上花的时间比高精度算法用的时间还多233333333333333

Gravatar
forever
积分:1322
提交:475 / 868

Gravatar
ChangeMC
积分:12
提交:4 / 13
代码很简单,也就18行...

Gravatar
ok
积分:379
提交:129 / 255
改不过懒得改了

题目 37 增强的加法问题
2014-11-08 20:46:12