问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

急求 在线等 大整数计算器的设计与实现

发布网友 发布时间:2023-08-28 00:30

我来回答

1个回答

热心网友 时间:2024-10-28 09:28

直接给你贴几段代码,自己修改一些即可:

高精度PASCAL代码
一、高精度加高精度
program Jia;
uses math;
var i,j,w,l,l1,l2:longint; s1,s2:ansistring;
a,b:array[1..100000]of longint;
procere init;
begin
readln(s1);readln(s2);
l1:=length(s1);
for i:=1 to l1 do
a[i]:=ord(s1[l1-i+1])-48;
l2:=length(s2);
for i:=1 to l2 do
b[i]:=ord(s2[l2-i+1])-48;
l:=max(l1,l2)+1;
end;
procere main;
begin
for i:=1 to l2 do
begin
a[i]:=a[i]+b[i];
if a[i]>=10 then
begin inc(a[i+1],a[i] div 10);a[i]:=a[i] mod 10; end;
end;
end;
procere print;
begin
i:=l; while a[i]=0 do dec(i); l:=i;
for i:=l downto 1 do
write(a[i]);
end;
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt');rewrite(output);
init;
main;
print;
close(input);close(output);
end.

二、高精度减高精度
program Jian;
var i,j,w,l,l1,l2:longint; s1,s2:ansistring;
a,b:array[1..100000]of longint;
procere init;
begin
readln(s1);readln(s2);
l1:=length(s1);
for i:=1 to l1 do
a[i]:=ord(s1[l1-i+1])-48;
l2:=length(s2);
for i:=1 to l2 do
b[i]:=ord(s2[l2-i+1])-48;
l:=l1;
end;
procere main;
begin
for i:=1 to l2 do
begin
a[i]:=a[i]-b[i];
if a[i]<0 then begin dec(a[i+1]);inc(a[i],10); end;
end;
end;
procere print;
begin
i:=l; while a[i]=0 do dec(i); l:=i;
for i:=l downto 1 do
write(a[i]);
end;
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt');rewrite(output);
init;
main;
print;
close(input);close(output);
end.

三、高精度乘高精度(压位)
program Cheng;
const base=1000;
var i,j,la,lb,t,code:longint; sa,sb,s:ansistring;
a,b,c:array[0..10000]of longint;
procere init;
begin
readln(sa);readln(sb);la:=length(sa); lb:=length(sb);
t:=la div 3;
for i:=1 to t do
begin
s:=copy(sa,la-i*3+1,3); val(s,a[i],code);
end;
s:=copy(sa,1,la-t*3);
if sa='' then a[0]:=t
else begin val(s,a[t+1],code);a[0]:=t+1; end;
t:=lb div 3;
for i:=1 to t do
begin
s:=copy(sb,lb-i*3+1,3); val(s,b[i],code);
end;
s:=copy(sb,1,lb-t*3);
if sb='' then b[0]:=t
else begin val(s,b[t+1],code);b[0]:=t+1; end;
end;
procere main;
begin
for i:=1 to a[0] do
for j:=1 to b[0] do
c[i+j-1]:=c[i+j-1]+a[i]*b[j];
c[0]:=a[0]+b[0];
for i:=1 to c[0] do
begin
c[i+1]:=c[i+1]+c[i] div base; c[i]:=c[i] mod base;
end;
end;
procere print;
begin
i:=c[0]; while c[i]=0 do dec(i); c[0]:=i;
for i:=c[0] downto 1 do
write(c[i]);
end;
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt');rewrite(output);
init;
main;
print;
close(input);close(output);
end.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 用外貌和神态描写刻画人物 如何描写人物的外貌和神态 福州北到福州南坐地铁多久 其实很想问下大家该如何打瘦脸针呢,去哪里打比较好呢? 我想知道瘦脸针效果怎么样,去哪里做好呢,谢谢~!@~ 在游戏中认识一个男生,加了他的微信之后我觉得我有点喜欢他我们现在该怎... 如何推荐qq上的好友给别人 dnf跨六是哪六个区? 显卡过度负载,如何降低温度? sqlserver2008R2备份文件可以还原到sqlserver2005吗 最不适合做销售的星座 中国队的战术是什么? 跪求中国足球夺取世界杯战术或建议!! 世界杯中国男篮迎来首战,失去几位主力的中国男篮能顶得住压力扛下比赛... 世界杯_中国 中国足球队世界杯近年来的作战方式 ...如果在官网能查到授权的zippo官方旗舰店(某猫)上购买 绑定了银行卡怎么取消 1976年阴历5月13出生的人是什么星座 ...投诉12315,大家帮想想办法,让后面的人不要再上当 电脑计算器为什么会保留整数,不保存小数点呢? c++ 设计一个小计算器,对2个整数进行加、减、乘、除和求余运算。_百度... 冶冻手方法 :Lenovo/联想 S6000 支持联通21M网络还是支持42m网络 47岁女,平安智胜人生终身寿险(万能型适合吗 路虎揽胜柴油2.0是皮带还是链条 2.0t是正时链条还是皮带啊? 北京现代途胜2.0两驱自动版十万公里是不是必须得更换时规皮带? 14年途胜是正时是链条还是皮带 京东商城里面有个博泰宏鑫礼品店也卖zippo,好多款式都是显示由芝宝提供... dlink无线路由,dhcp 地址分配不稳定?请高手作答! ...台电脑,还是同一条网线,DHCP就是不自动分配IP地址上不了网 国际标准篮球场的周长是86米,长与宽的比是5.6比3,你知道标准篮球场的面... 国际标准篮球场的周长是86米,长与宽的比是5.6∶3,它的面积是多少_百度... 篮球场原来长80米,宽60米, 经过扩建长和宽都 增加了20米算一算扩建的... 小家电在阿里巴巴国际站有市场吗? 水杯不能装热水怎么搞 51槽无刷电机绕组是多少度 佛罗里达蓝魔虾吃什么 2013年公务员行测考试我复习很长时间了,后面该注意些什么