回 帖 发 新 帖 刷新版面

主题:用pascal编程 水仙花数问题 /加分/

用pascal编程 水仙花数问题

回复列表 (共16个回复)

沙发

这个问题简单嘛!!具体如下(举例100到999之间的):
var
i,a,b,c:integer;
 begin
 for i:=100 to 999 do 
 begin
 a:=i div 100 ;
b:=i div 10 mod 10;
c:=i mod 10;
if a^3+b^3+c^3=i then write (i);
end;
end.

板凳

我不想打代码了,只是给出思想:
分解1个数字,然后计算并且比较就可以了!

3 楼

分解  之后判断 等于输出  不等于继续循环 100-999循环
[em6]

4 楼

课本上有

5 楼

分解一个数 
比如说153(这是水花数吧^_^)
 153可以分解成 1*100+5*10+3*1 这就是分解
用pascal就是

a:= i div 100 
b:= i div 10 mod 10 
c:= i mod 1 
ta:=a*a*a tb:=b*b*b tc:=c*c*c
if ta+tb+tc= 100*a+10b+c then total:=total+1
^_^

6 楼

我晕

7 楼


用for语句就可以啊
 用三个for语句很简单的!!

8 楼

同意楼上,for循环比较方便

9 楼

...
啥叫水仙花数??
想想...
貌似是各位的数3次放等于本身?
1--999?
var
i:integer;
begin
for i=1 to 999 do
if i =(i mod 100)^3+(i mod 10 div 10)^3+(i div 10)^3 then  write(i);
end.

10 楼

var
    a,b,c:0..9;
    i:integer;
begin
 for i:=100 to 999 do
   begin
     a:=i div 100 do ;
     b:=(i div 10) mod 10 ;
     c:=i mod 10;
     if (a*a*a+b*b*b+c*c*c) = i then writeln(i);
   end;
end.

我来回复

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