pacal的问题,希望高手可以帮忙解答!!!

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:11:58
有三个小问题
1.一个任意四位数正整数,将整数重新组成一个最大的和一个最下的数,两数相减(结果是正整数),重复此过程,最多七步,必得6174.

2.将1-9分成三组(每一个数字使用一次)分别组成三个数,且三个数的大小比为1:2:3,试求所有满足条件的情况。

3.求一个m*n数阵中的马鞍数(在行上最小,在列上最大)
数阵是:
5 6 7 8 9
4 5 6 7 8
3 4 5 2 1
2 3 4 9 0
1 2 5 4 8
帮忙写一下pascal,可以请内行人帮忙。
如果好的话,我会追加分数的,谢谢!!!!!
初学者还不是很了解,把第一个编出来出来给我对照以下,谢谢。
第三个怎么运行,run以后怎么输入数字,然后得出结果

(1)
<br><br>首先数位拆分,排序组成新数
<br><br>相减,直到为6174
<br><br>我就不编了

program asdf;
var n,i,n1,n2,j:integer;
a:array[0..9]of integer;
s:string;
begin
readln(n);
str(n,s);
while n<>6174 do
begin
n1:=0;
n2:=0;
for i:=1 to length(s) do
begin
inc(a[ord(s[i])-ord('0')]);
end;
for i:=0 to 9 do
for j:=1 to a[i] do
if a[i]<>0 then n1:=n1*10+i;
for i:=9 downto 0 do
for j:=1 to a[i] do
if a[i]<>0 then n2:=n2*10+i;
for i:=0 to 9 do a[i]:=0;
n:=n2-n1;
str