回 帖 发 新 帖 刷新版面

主题:急解一个数学难题

2.    若一个三位自然数的各位数字的立方和等于该数本身, 则称该数为水仙花数. 编程计算出所有的水仙花数.

回复列表 (共2个回复)

沙发

这么小的规模,直接枚举都没什么问题,不过稍微剪枝,感觉好点
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.

板凳

这个好像是一道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));

我来回复

您尚未登录,请登录后再回复。点此登录或注册