用matlab编程,计算出卡普雷卡尔(Kaprekar)常数
取任意一个4位数(4个数字均为同一个数的除外),将该数的4个数字重新组合,形成可能的最大数和可能的最小数,再将两者之间的差求出来;对此差值重复上述过程,编写程序实现上述过程,并求最终得到的数。
例如:
大数:取这4个数字能构成的最大数,本例为:4321;
小数:取这4个数字能构成的最小数,本例为:1234;
差:求出大数与小数之差,本例为:4321-1234=3087;
重复:对新数3087按以上算法求得新数为:8730-0378=8352;
编程如下:
…….
clc
s=input('任意输入一个四位数s=\n')
i=0;
t=s;
j=1;
while i~=j
a1=fix(t/1000);
a2=fix(mod(t,1000)/100);
a3=fix(mod(t,100)/10);
a4=fix(mod(t,10));
x=[a1,a2,a3,a4];
y=sort(x);
max=y(4)*1000+y(3)*100+y(2)*10+y(1)
min=y(1)*1000+y(2)*100+y(3)*10+y(4)
w=max-min
if w==t
fprintf('输出最大数与最小数的差w=%d\n',w)
break
else
t=w
continue
end
end
本文链接:https://my.lmcjl.com/post/7559.html
展开阅读全文
4 评论