什么是乳酪蛋糕:pascal程序设计

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 18:28:03
在pascal里面是怎么样写X的N次方的?
例如5的12次方....

其实如果说会出现整形数益处的话,用函数也是会的如:
a:=power(5,12);
这样的话,a的附值就超过范围了。

我不知道你用的是什么版本,如果你用的是FreePascal的话,可以将变量定义为int64,就可以忽略益处问题,程序:
var s:int64;
i:integer;
begin
s:=1;
for i:=1 to 12 do
s:=s*5;
writeln(s);
end;

如果你用的是TurboPascal或BorlandPascal或更早版本,是不可以定义int64的,你只好设一个数组:
a:array[1..100]of integer;每一个位代表一个数位
这样用非常复杂的精确乘程序来获得结果。这里不方便打出来,你可以考虑参看《信息学竞赛》的第12章10节

虽然basic可以写作5^12, 但标准pascal没有这样的运算符.

标准pascal也没有这样的函数. 如果你用Delphi或Free pascal, 可以用 Power函数:

f := Power(5, 12);

如果想自己用标准pascal实现它, 可以用:

f := Exp(12*Ln(5));

楼上的方法不好, 因为5的12次方达20位数, 用整型数会溢出.

1.求a的b次方

pascal中没有幂次函数,所以求乘方运算要通过其它公式代换,这里介绍一种方法:

exp(n)=e^n

ln(a)是a的自然对数

所以 exp(ln(a))=a

因此,如果我们要计算a^b,就可以写成exp(ln(a)*b)

虽然没有什么函数,但是可以用循环来解,例如:
program baidu;
var
i,x:integer;
begin
x:=1;
for i:=1 to 12 do
x:=x*5;
writeln(x);
end.