matlab常数编程,Matlab编程,求解出卡普雷卡尔(Kaprekar)常数

用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 评论

留下您的评论.