关于Pascal的一些题。

来源:百度知道 编辑:UC知道 时间:2024/06/26 04:02:56
下列问题都用Pascal语言解答。
1,求竖式
根据下面的算式,求出X、Y、Z(X、Y、Z是1-9的自然数),并打印具体的算式。
X X X X
Y Y Y Y
+ Z Z Z Z
————————
Y X X X Z
2,数字和
求1-999的所有自然数的数字之和
3,特殊三位数(一)
求出所有满足下列条件的三位数:
(1)它的各位数字不同。
(2)这个数等于所有由它的各位数字所组成的两位数的和
4,22位数
已知一个数的个位数是7,将7移到首位,其它数字的顺序不变,则所得的新数恰好是原数的7倍,求这些数中最小的数。
5,六位数
FABCDE是一个六位数,已知F=1,如果把首位数F移到末尾组成一个新的六位数ABCDEF。则新的六位数正好是原数的3倍,求原六位数。
6、特殊三位数(二)
有一个含有数字1和3的三位数,如果把1变成3,3变成4,那么这个数就比新数的一半还少9,求这个数。
7、特殊三位数(三)
在所有三位数中,哪一个数与其数字之和的比值最大?哪一个数与其数字之和的比值最小,求出这个三位数与对应的比值。
8、特殊三位数(四)
求所有能被11整除且不含重复数字的三位数,这样的三位数共有几个?
答好的加分!

(1)var
x,y,z,a,b,c:integer;
begin
for x:=1 to 9 do
for y:=1 to 9 do
for z:=1 to 9 do
begin
a:=x*1000+x*100+x*10+x;
b:=y*1000+y*100+y*10+y;
c:=y*10000+a-x+z;
if a+b=c then break;
end;
writeln(x,x,x,x);
writeln(y,y,y,y);
writeln('+',z,z,z,z);
write(y,x,x,x,z);
end.
(2)var
i,sum:longint;
begin
sum:=0;
for i:=1 to 999 do sum:=sum+i;
writeln(sum);
end.
(3)题目意思不太清楚
(4)var
i,l,t:longint;
f:boolean;
begin
f:=false;i:=1;
while not(f) do
begin
t:=i;l:=1;
while t>0 do begin t:=t div 10;l:=l*10;end;
if (7*l+i)=(i*10+7)*7 then f:=true;
end;
writeln(i*10+7);
end.
(5)var
i,j,k:longint;
begin
for i:=100000 to 199999 do
begin
j:=i mod 100000;
k:=i div 100