PSACAL的几道程序

来源:百度知道 编辑:UC知道 时间:2024/06/17 05:31:12
题1、求Sn=a+aa+aaa+…+aa…a 之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5), n由键盘输入。

题2、打印100-999之间所有的“水仙花数”。“水仙花数”是一个三位数,其各位数立方和等于该数本身。

题3、有15个数按由小到大顺序存放在一个数组中,输入一个数,要求找出该数是数组中第几个元素的值。如果该数不在数组中,则打印出“NO”。

题4、如果矩阵A中存在这样的一个元素A[i,j]满足下列条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个程序计算出矩阵A的所有马鞍点,以及其位置。

题5、一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上又出现了一个新的对称数。编写一个程序求该车的速度以及这新的对称数。

题6、纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数。这样下去一直到最后剩下的个位数也还是素数。求出所有小于3000的四位的纯粹素数。

题7、已知一个正整数的个位数为7,将7移到该数的首位,其它数字顺序不变,则得到的新数恰好是原数的7倍,编程找出满足上述要求的最小自然数。

题8、求阶乘100!(将每一位都打印出来)

题9、把高精度减法写在记事本上。

题10、设有一个N*M方格的棋盘( l<= N<= 100,1<= M<= 100)。
求出该棋盘中包含有多少个正方形、多少个长方形(不包括正方形)。
例如:当 N=2, M=3时:

正方形的个数有8个:即边长为1的正方形有6个;
边长为2的正方形有2个。
长方形的个数有10个:
即2*1的长方形有4个:
1*2的长方形有3个:
3*1的长方形有2个:
3*2的长方形有1个:
程序要求:输入:N,M
输出:正方形的个数与长方形的个数
如上

1:
var
n,i:byte;
a,s:longint;
begin
readln(a,n);s:=0;
for i:=1 to n do begin

s:=s+a;

a:=a*10+a mod 10;
end;
writeln(s);
readln;
end.

2:
var
a,b,c:byte;
begin
for a:=1 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do

if a*a*a+b*b*b+c*c*c=a*100+b*10+c then

writeln(a,b,c);
readln;
end.

3:
begin
write('Input the array:');
for i:=1 to 15 do read(a[i]);readln;
{paixu}
for i:=1 to 14 do for j:=i+1 to 15 do if a[i]>a[j] then begin

n:=a[i];a[i]:=a[j];a[j]:=n;
end;
{paixu}
write('Input the data:');
readln(n);
for i:=1 to 15 do if a[i]=n then break;
if a[i]=n then while a[i]=n do begin

write(i,' '); i:=i+1;
end else write('NO');
readln;
end.

4:
var
a:array [1..100,1..100] of integer;
i,j,k:byte;