用matlab寻找,有这样一个3位数,组成它的3个数字阶乘之和正好等于它本身。
1、建立自定义的阶乘函数
function y=exfun(x)
x0=1;
for m=1:x
x0=x0*m;
end
y=x0;
end
2、用三个循环查找,某个三位数的3个数字阶乘之和正好等于它本身。
a=1:9;b=0:9;c=0:9;
for i=1:length(a)
for j=1:length(b)
for k=1:length(c)
y=exfun(a(i))+exfun(b(j))+exfun(c(k));
ai=a(i);bj=b(j);ck=c(k);
if ai*100+bj*10+ck==y
str=['a=',num2str(ai),',b=',num2str(bj),',c=',num2str(ck)];
fprintf('%s\n',str)
disp('abc = a! + b! + c! 成立')
end
end
end
end
disp('其余都不成立')
3、运行结果