pascal高精度问题
发布网友
发布时间:2023-04-07 06:21
我来回答
共2个回答
热心网友
时间:2024-10-05 12:40
我是乐于助人的,不像楼上那位只看钱财
1.
type data=array [1..1000,0..1000] of longint;
var
a:data;
i,j,n:longint;
procere cf;
begin
for i:=2 to n do
begin
for j:=1 to 999 do
begin
a[i,j]:=a[i-1,j]*i+a[i,j];
a[i,j+1]:=a[i,j] div 10+a[i,j+1];
a[i,j]:=a[i,j] mod 10;
end;
a[i,1000]:=a[i,999] div 10+a[i,3];
end;
end;
procere print;
begin;
i:=1000;
while (a[n,i]=0) and (i>1) do dec(i);
for j:=i downto 1 do
write(a[n,j]);
end;
begin
readln(n);
a[1,1]:=1;
cf;
print;
end.
2.
var
a,c:array[1..200] of 0..9;
x,b,i,j,lena:longint;
n1,n2:string;
begin
readln(n1);
readln(n2);
lena:=length(n1);
for i:=1 to lena do val(n1[i],a[i]);
val(n2,b);
for i:=1 to lena do
begin
c[i]:=(x*10+a[i]) div b;
x:=(x*10+a[i]) mod b;
end;
j:=1;
while (c[j]=0) and (j<lena) do inc(j);
for i:=j to lena do write(c[i]);
writeln;
end.
3.
type data=array [1..1000,0..1000] of longint;
var
a:data;
i,j,n:longint;
procere cf;
begin
for i:=2 to n do
begin
a[i,1]:=a[i-1,1]+i;
for j:=2 to 999 do
begin
a[i,j]:=a[i-1,j]+a[i,j];
a[i,j+1]:=a[i,j] div 10+a[i,j+1];
a[i,j]:=a[i,j] mod 10;
end;
a[i,1000]:=a[i,999] div 10+a[i,3];
end;
end;
procere print;
begin;
i:=1000;
while (a[n,i]=0) and (i>1) do dec(i);
for j:=i downto 1 do
write(a[n,j]);
end;
begin
readln(n);
a[1,1]:=1;
cf;
print;
end.
4.
type data=array [1..1000,0..1000] of longint;
var
a:data;
i,j,n:longint;
procere cf;
begin
for i:=2 to n do
begin
for j:=1 to 2 do
begin
a[i,j]:=a[i-1,j]*i+a[i,j];
a[i,j+1]:=a[i,j] div 10+a[i,j+1];
a[i,j]:=a[i,j] mod 10;
end;
a[i,3]:=a[i,2] div 10+a[i,3];
end;
end;
procere lj;
begin
for i:=1 to n-1 do
for j:=1 to 2 do
begin
a[n,j]:=a[i,j]+a[n,j];
a[n,j+1]:=a[n,j] div 10+a[n,j+1];
a[n,j]:=a[n,j] mod 10;
end;
end;
procere print;
begin;
i:=2;
while (a[n,i]=0) and (i>1) do dec(i);
for j:=i downto 1 do
write(a[n,j]);
end;
begin
readln(n);
a[1,1]:=1;
cf;
lj;
print;
end.
不错吧(*^__^*) 嘻嘻
望楼主采纳
热心网友
时间:2024-10-05 12:41
本来正在做任务,看见也可以顺便做一下,谁料一句话竟然4个问题还不带分的,做完这4题这个晚上都给你干活了。伤不起啊!
pascal背单词题目 高精度的哟
先用递归方式找出其规律(即Fn和前面的Fn-1、Fn-2、Fn-3、Fn-4等的递推公式),再用高精度求Fn。
pascal高精度算法求n!(带讲解,初学者。满意追加)
问题描述 输入一个整数n(1<=n<=1000),输入n!的精确值.分析:当n比较大时,n!是一个很大的数,Pascal的实数和整数类型均不能存储,所有考虑用高精度计算.这个问题的情况比较特殊,我们可以把n!看成(n-1)!*n,这样参与乘法的两个数一个是高精度数(n-1)!,另一个是常规的整数n.下面我们看,如何...
这pascal的高精度哪里错了
1)clear 没有定义吧!!!program exlongint;const maxdigits =1000;type number=record l:longint;d:array [1..maxdigits] of byte;end;{定义一个clear} procedure clear(var a:number);var i:longint;begin for i:=1 to maxdigits do begin a.d[i]:=0;end;end;function jia(a,b:...
【紧急】PASCAL高精度加法问题查错,谢谢。
老大。。。你定义的时候是type arr=array [1..225] of 0..9;后面是 for i:=1 to 255 do begin x1[i]:=0; x2[i]:=0; x3[i]:=0; end;定义数组为225个而你使用却达到了255个 当然会下标溢出 201=下标溢出 type arr=array [1..225] of 0..9;改为type arr=array [1..255]...
在pascal中,怎么实现高精度运算?
先把高精度数转换为字符串,用ord语句再减去48,再做运算
pascal计算机问题一个
高精度加记忆阶乘(N!=(N-1)!*N,那么就可以利用列表储存着每次的答案方便下次调用).real肯定不行的,哪怕你用extended也不行.应为储存精度不够了,后面的位数会被舍去的.
pascal 题目是将1到100转为高精度数 再相加得值 但是我这个陷入了死循环...
a,sum:array[1..1010] of longint;i,n:longint;procedure change(x:longint);var k:longint;begin k:=0;while x>0 do begin inc(k);a[k]:=x mod 10;x:=x div 10;end;a[0]:=k;end;procedure add;begin n:=1;for i:=1 to n do begin sum[i]:=sum[i]+a[i];while ...
在PASCAl中,如何求高精度开方?
1 1 {算出不大于最右一组数的开平方的最大整数,写在标记左上方,即 Int( sqrt(最右一组数) ), 并把这个整数的平方写下1} 100 {计算它们的差, 在右边添两个零} 24 96 {将刚才求得的一位数乘以20(即1*20)然后,算出不大于差的x(20+x),的x的最大整数 4 } 400 ...
Pascal 高精度的问题
a:array[0..10001]of longint;begin assign(input,'yubi kili.i n');reset(in pu t);assig n (o utput,'yu bikili.o ut');rew rite(output);readln(n);readln ( s);l:=length(s);for i:= 1 to l do v al( s[i],a[l- i+1]);for i:=l down to 1 d...
关于pascal的高精度运算
递归+栈。一个栈中表示在同一个括号内的多项式。如果是加法,则将其放入栈,如果是乘法,则将栈顶的一并出栈然后乘起来,再放入栈,当遇到后括号就将栈内所有的相加,然后返回,如果遇到括号则递归。EG:4+5+6*7 将4加入栈 栈状态:4 将5加入栈 栈状态:4 5 将6加入栈 栈状态:4 5 6...