主题:急解一个数学难题
ws532532
[专家分:0] 发布于 2008-12-23 16:52:00
2. 若一个三位自然数的各位数字的立方和等于该数本身, 则称该数为水仙花数. 编程计算出所有的水仙花数.
回复列表 (共2个回复)
沙发
永恒的回忆 [专家分:810] 发布于 2008-12-29 23:18:00
这么小的规模,直接枚举都没什么问题,不过稍微剪枝,感觉好点
function fun1()
f=[0:9].^3;
for i=9:-1:1
a=i*100+99-f(i+1);
for j=fix(a^(1/3)):-1:0
b=a-f(j+1);
for k=fix(b^(1/3)):-1:0
if (f(i+1)+f(j+1)+f(k+1))==(100*i+10*j+k)
disp(f(i+1)+f(j+1)+f(k+1))
end
end
end
end
>> tic;fun1;toc
407
371
370
153
Elapsed time is 0.000000 seconds.
板凳
qibbxxt [专家分:350] 发布于 2009-01-01 10:07:00
这个好像是一道c语言的题目,我觉得出题者的意图在于给定一个三位数如何求出它的各位数。
clear;clc;close all
b(:,1)=100:999;
b(:,2)=fix(b(:,1)/100);
b(:,3)=mod(fix(b(:,1)/10),10);
b(:,4)=mod(b(:,1),10);
disp(99+find(sum(b(:,2:4).*b(:,2:4).*b(:,2:4),2)-b(:,1)==0));
我来回复