pascal数学黑洞 流程图
2个回答
展开全部
var
a:array[1..4]of integer;
i,j,k,n,max,min,t:integer;
begin
readln(n);
max:=n;min:=0;
while max-min<>6174 do //当差为6174则跳出循环
begin
i:=0;n:=max-min;
while n<>0 do //求新的数组
begin
i:=i+1;
a[i]:=n mod 10;
n:=n div 10;
end;
for i:=1 to 3 do //排序
for j:=1 to 4-i do
if a[j+1]>a[j]then
begin
t:=a[j+1];
a[j+1]:=a[j];
a[j]:=t;
end;
max:=0;min:=0;
for i:=1 to 4 do max:=max*10+a[i]; //最大
for i:=4 downto 1 do min:=min*10+a[i]; //最小
writeln(max,'-',min,'=',max-min); //输出步骤
end;
writeln('7614-1467=6174'); //最后输出
end.
输入一个四位数试试看?
a:array[1..4]of integer;
i,j,k,n,max,min,t:integer;
begin
readln(n);
max:=n;min:=0;
while max-min<>6174 do //当差为6174则跳出循环
begin
i:=0;n:=max-min;
while n<>0 do //求新的数组
begin
i:=i+1;
a[i]:=n mod 10;
n:=n div 10;
end;
for i:=1 to 3 do //排序
for j:=1 to 4-i do
if a[j+1]>a[j]then
begin
t:=a[j+1];
a[j+1]:=a[j];
a[j]:=t;
end;
max:=0;min:=0;
for i:=1 to 4 do max:=max*10+a[i]; //最大
for i:=4 downto 1 do min:=min*10+a[i]; //最小
writeln(max,'-',min,'=',max-min); //输出步骤
end;
writeln('7614-1467=6174'); //最后输出
end.
输入一个四位数试试看?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
var
a,b,t,i,j:longint;n:array[1..4]of longint;
begin
assign(input,'kaprekar.in');
assign(output,'kaprekar.out');
reset(input);
rewrite(output);
readln(a);
while a<>6174 do
begin
n[1]:=a div 1000;
n[2]:=a div 100 mod 10;
n[3]:=a div 10 mod 10;
n[4]:=a mod 10;
for i:=2 to 4 do
for j:=i downto 2 do
if n[j]>n[j-1] then begin t:=n[j];n[j]:=n[j-1];n[j-1]:=t;end;
a:=n[1]*1000+n[2]*100+n[3]*10+n[4]-n[1]-n[2]*10-n[3]*100-n[4]*1000;
writeln(n[1]*1000+n[2]*100+n[3]*10+n[4],'-',n[1]+n[2]*10+n[3]*100+n[4]*1000,'=',a);
end;
close(input);
close(output);
end.
a,b,t,i,j:longint;n:array[1..4]of longint;
begin
assign(input,'kaprekar.in');
assign(output,'kaprekar.out');
reset(input);
rewrite(output);
readln(a);
while a<>6174 do
begin
n[1]:=a div 1000;
n[2]:=a div 100 mod 10;
n[3]:=a div 10 mod 10;
n[4]:=a mod 10;
for i:=2 to 4 do
for j:=i downto 2 do
if n[j]>n[j-1] then begin t:=n[j];n[j]:=n[j-1];n[j-1]:=t;end;
a:=n[1]*1000+n[2]*100+n[3]*10+n[4]-n[1]-n[2]*10-n[3]*100-n[4]*1000;
writeln(n[1]*1000+n[2]*100+n[3]*10+n[4],'-',n[1]+n[2]*10+n[3]*100+n[4]*1000,'=',a);
end;
close(input);
close(output);
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询