pascal编程(高精度)
3个回答
2013-12-06
展开全部
先贴个加法,等会儿再贴减法
program plus(input,output);
var
s1,s2:string;
i,j,k,max:integer;
a,b,c:array[1..255] of integer;
begin
readln(s1);
readln(s2);
//把两个数当两个字符串读进来
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
fillchar(c,sizeof(c),0);
//数组全部清0
for i:=1 to length(s1) do
a[length(s1)-i+1]:=s1[i];
for i:=1 to length(s2) do
b[length(s2)-i+1]:=s2[i];
//预处理,将字符串倒序放入数组
max:=length(s1);
if max<length(s2) then max:=length(s2);
for i:=1 to max do
begin
c[i]:=c[i]+a[i]+b[i];//和我们竖式加法相同
c[i+1]:=c[i] div 10+c[i+1];//进位
c[i]:=c[i] mod 10;//进位后取个位
end;
k:=max+1;
while c[k]=0 then c:=c-1;
//去除前面的0
for i:=k downto 1 do
write(c[i]);
writeln;
end.
program plus(input,output);
var
s1,s2:string;
i,j,k,max:integer;
a,b,c:array[1..255] of integer;
begin
readln(s1);
readln(s2);
//把两个数当两个字符串读进来
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
fillchar(c,sizeof(c),0);
//数组全部清0
for i:=1 to length(s1) do
a[length(s1)-i+1]:=s1[i];
for i:=1 to length(s2) do
b[length(s2)-i+1]:=s2[i];
//预处理,将字符串倒序放入数组
max:=length(s1);
if max<length(s2) then max:=length(s2);
for i:=1 to max do
begin
c[i]:=c[i]+a[i]+b[i];//和我们竖式加法相同
c[i+1]:=c[i] div 10+c[i+1];//进位
c[i]:=c[i] mod 10;//进位后取个位
end;
k:=max+1;
while c[k]=0 then c:=c-1;
//去除前面的0
for i:=k downto 1 do
write(c[i]);
writeln;
end.
2013-12-06
展开全部
我是刚学这门语言,有几道编程我不会,有那位高手给我编一下,谢谢了
1.编写程序,建立一个有10个元素组成的一维数组(数据自定),然后从键盘输入一个数据,如果数组中有与输入数据相同的元素,则删除所有这样的元素,后面的元素依次前移,否则将输入数据插入到数组的中间位置.
2.编程程序,求下面级数前n项中奇数的和os,在求和过程中,以第一个数值小于0.0001的项,计算并输出和数os.结果取6位小数
1/1!-1/2!+1/3!-1/4!+....+(-1)^(n-1)*1/n!+...
(其中^表示幂运算,!表示求阶乘)
1.编写程序,建立一个有10个元素组成的一维数组(数据自定),然后从键盘输入一个数据,如果数组中有与输入数据相同的元素,则删除所有这样的元素,后面的元素依次前移,否则将输入数据插入到数组的中间位置.
2.编程程序,求下面级数前n项中奇数的和os,在求和过程中,以第一个数值小于0.0001的项,计算并输出和数os.结果取6位小数
1/1!-1/2!+1/3!-1/4!+....+(-1)^(n-1)*1/n!+...
(其中^表示幂运算,!表示求阶乘)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-06
展开全部
是用什么编程软件编啊,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询