题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
输出:正方形的个数与长方形的个数
如上例:输入:2 3
输出:8,10
题11、分数变小数
写出一个程序,接受一个以N/D的形式输入的分数,其中N为分子,D为分母,输出它的小数形式。如果它的小数形式存在循环 节,要将其用括号括起来。例如:1/3=.00000...表示为.(3),又如41/333=.123123123...表示为.(123)。
一些转化的例子:
1/3=.(3)
22/5=4.4
1/7=.(142857)
3/8=.375
45/46=.803(571428)
用上面的分数和11/59来测试你的程序。
运行举例:
ENTER N,D:1 7
1/7=.(142857)
本题中,0<=N<=65535,0<=D<=65535,设运算结果小数点后最多保留100位。
游戏题目:
由计算机“想”一个四位数,请人猜这个四位数是多少。人输入四位数字后,计算机首先判断这四位数字中有几位是猜对了,并且在对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数是多少为止。
例如:计算机“想”了一个“1234”请人猜,可能的提示如下:
人猜的整数 计算机判断有几个数字正确 有几个位置正确
1122 2 1
3344 2 1
3312 3 0
4123 4 0
1243 4 2
1234 4 4
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;
x,y:byte;
f:boolean;
n:word;
begin
write('Input x, y:');
readln(x,y);
writeln('Input data:');
for j:=1 to y do for i:=1 to x do read(a[i,j]);readln;
n:=1;
for i:=1 to x do for j:=1 to y do begin
f:=true;
for k:=1 to x do if a[k,j]<a[i,j] then f:=false;
for k:=1 to y do if a[i,k]>a[i,j] then f:=false;
if f then begin writeln(n:3,' : ',i:3,', ',j:3); n:=n+1; end;
end;
if n=1 then writeln('Not found!');
readln;
end.
5:
var
a:longint;
i:byte;
function dc(n:longint):boolean;
var i:byte;
a:string;
begin
dc:=true;
str(n,a);
for i:=1 to length(a) do if a[i]<>a[length(a)+1-i] then dc:=false;
end;
begin
a:=95860;
while not dc(a) do inc(a);
write(a);
readln;
end.
6:
var
a:array [0..3000] of boolean;
i,j:word;
begin
fillchar(a,sizeof(a),true);
a[0]:=false; a[1]:=false;
for i:=2 to 3000 do if a[i] then
for j:=2 to 3000 div i do a[i*j]:=false;
for i:=11 to 3000 do if a[i] then
if not a[i mod round(exp(ln(10)*(trunc(ln(i)/ln(10)))))] then a[i]:=false;
for i:=1000 to 3000 do if a[i] then write(i:8);
readln;
end.
后面懒得写了,有空再说。
之前写过一个猜数字,放在这里了:
program gn;
type int_1_4=array [1..4] of integer;
st_5=string[5];
var i,j,k:integer;
numn,numg:int_1_4;
ga,gb:array [1..8] of integer;
nun:array [1..8,1..4] of integer;
flag:boolean;
ch:char;
procedure init;
var r_g:integer;
begin
randomize;
for i:=1 to 4 do begin
r_g:=random(10-i);
numn[i]:=r_g;
end;
for k:=1 to 4 do
for i:=1 to 4 do
for j:=1 to i-1 do
if numn[i]=numn[j] then begin
numn[i]:=succ(numn[i]);
numn[i]:=numn[i] mod 10
end;
flag:=false;
writeln;writeln;
end;
function readnum(var num:int_1_4):boolean;
var st5:st_5;
function realnum(numl:st_5):boolean;
var flagl:boolean;
begin
flagl:=true;
if length(numl)<>4 then flagl:=false;
realnum:=flagl;
if not flagl then writeln('ERROR:length');
if flagl then begin
for i:=1 to 4 do
if not (numl[i] in ['0'..'9']) then
flagl:=false;
if not flagl then begin
realnum:=false;
writeln('ERROR:char');
end;
if flagl then begin
小朋友
不要这样吧。。
对你学pascal 没好处的啊,
再说有些也能在百度上搜的到的丫!
小朋友
不要这样吧。。
对你学pascal 没好处的啊,
再说有些也能在百度上搜的到的丫