主题:纯正的新手...提问,数字黑洞6174
题目描述
数字黑洞6174: 是指一个任意的四位正整数, 将数字重新组合成一个最大的数和最小的数相减,重复这个过程,最多七步,必得6174,输出掉进黑洞的过程和步数。
输入格式
一个四位整数(不会出现4个相同的数字)
输出格式
若干行算式(如果有的话)
步数
样例输入
4622
样例输出
6422-2246=4176
7641-1467=6174
2
小弟自己试了一下,但评测有一个测试点过不了,求助~~!
奉上我的程序,不足之处请指点
var a,c,d,n,i,e:integer; max,min:array[1..4]of integer;
begin
read(n);
repeat
max[1]:=n div 1000;
max[2]:=(n mod 1000)div 100;
max[3]:=((n mod 1000)mod 100)div 10;
max[4]:=(((n mod 1000)mod 100)mod 10);
for d:=1 to 4 do
for i:=1 to 4 do
if max[d]>max[i] then begin
a:=max[d];
max[d]:=max[i];
max[i]:=a;
end;
d:=0;
for i:=4 downto 1 do
begin
inc(d);
min[d]:=max[i];
end;
c:=max[1]*1000+max[2]*100+max[3]*10+max[4];
d:=min[1]*1000+min[2]*100+min[3]*10+min[4];
n:=c-d;
writeln(c,'-',d,'=',n);
inc(e);
until n=6174;
write(e);
end.
数字黑洞6174: 是指一个任意的四位正整数, 将数字重新组合成一个最大的数和最小的数相减,重复这个过程,最多七步,必得6174,输出掉进黑洞的过程和步数。
输入格式
一个四位整数(不会出现4个相同的数字)
输出格式
若干行算式(如果有的话)
步数
样例输入
4622
样例输出
6422-2246=4176
7641-1467=6174
2
小弟自己试了一下,但评测有一个测试点过不了,求助~~!
奉上我的程序,不足之处请指点
var a,c,d,n,i,e:integer; max,min:array[1..4]of integer;
begin
read(n);
repeat
max[1]:=n div 1000;
max[2]:=(n mod 1000)div 100;
max[3]:=((n mod 1000)mod 100)div 10;
max[4]:=(((n mod 1000)mod 100)mod 10);
for d:=1 to 4 do
for i:=1 to 4 do
if max[d]>max[i] then begin
a:=max[d];
max[d]:=max[i];
max[i]:=a;
end;
d:=0;
for i:=4 downto 1 do
begin
inc(d);
min[d]:=max[i];
end;
c:=max[1]*1000+max[2]*100+max[3]*10+max[4];
d:=min[1]*1000+min[2]*100+min[3]*10+min[4];
n:=c-d;
writeln(c,'-',d,'=',n);
inc(e);
until n=6174;
write(e);
end.