主题:刚学pascal,写了几个程序,高手帮检查一下。
hsfwin8478
[专家分:0] 发布于 2012-10-28 21:08:00
FOR语句 1.计算并输出2的n次方和2的-n次方。已知n=0,1,2,3,4,5,...,15 2. 求斐波拉契数列a0,a1,a2,a3...a20 3. 若三位数abc,a^3+b^3+c^3=abc,则称为水仙花数。例如153,1^3+5^3+3^3=153,因此153为水仙花数。输出100--999的所有水仙花数 4.输出1--999中能被3整除,且至少有一位数字是5的所有整数。 WHILE 语句 1.输入x的值(|x|<1),按下列公式计算s s=x+(x^2/2)+(x^3/3)+(x^4/4)+.... 直到最后一项的绝对值小于0.00001为止。 REPEAT语句 1. 求下列式中n的最大值: 2^2+4^2+6^2+...+n^2<1500 2.输入x的值,按公式计算: 1-(x^2/2!)+(x^4/4!)-(x^6/6!)+....... 直到最后一项的绝对值小于0.000001时为止
for 语句:
1、
program exercise;
var n,i,x:longint;
y:real;
begin
readln(n);
x:=1;
y:=0;
for i:=1 to n do
begin
x:=x*2;
y:=1/x;
end;
writeln(x:5,' ',y:0:10);
end.
2、
var x,y,a,t,n:qword;
begin
readln(n);
x:=0;
y:=1;
t:=3;
write(' ':13,'0':13,'1':13);
repeat
a:=x;
x:=y;
y:=a+x;
t:=t+1;
write(y:13);
if t mod 5 =0 then writeln;
until t-1=n;
end.
3、
var i,j,k:integer;
begin
for i:=1 to 9 do
for j:=0 to 9 do
for k:=0 to 9 do
if i*i*i+j*j*j+k*k*k=100*i+10*j+k then
write(100*i+10*j+k,' ');
end.
4、
var a,b,c,i:integer;
begin
for i:=1 to 999 do
begin
a:=i div 100;
b:=(i-100*a) div 10;
c:=i mod 10;
if (i mod 3=0) and ((a=5) or (b=5) or (c=5)) then
write(i,' ');
end;
end.
while语句:
var s,n,x:real;
i:integer;
begin
write('Please input x:');
readln(x);
n:=1; i:=1;
while (n/i)>=1e-5 do
begin
n:=n*x;
s:=n/i+s;
inc(i);
end;
writeln(s:0:5);
end.
repeat语句:
1、
var s,i,x,y:integer;
begin
s:=0;
repeat
x:=2*i;
i:=i+1;
y:=x*x;
s:=s+y;
until s>1500;
writeln(x);
end.
2、
var x,j,i,k,m,a,b:longint;
t,p:real;
begin
writeln('Please input x');
readln(x);
a:=0;b:=1;m:=1;t:=1;i:=1;
repeat
a:=x*x;
b:=a*b;
i:=2*i;
for k:=1 to i do
m:=m*k;
p:=b/m;
j:=j+1;
if j mod 2=0 then t:=t-p else
t:=t+p;
until p<1e-6;
writeln(t:0:8);
end.
最后一题弄了好久,好像错了,实在木招了
最后更新于:2012-10-28 23:16:00

您所在位置: