水仙花数
1.题目
水仙花数是一个三位数,其各位上数的立方和等于这个数,例如153,13+53+33=153。请找出它们来,OK,下面我们就来找一下这种美妙的数。
2.编程简析
水仙花数既然是一个三位数,那么它的范围也就再清楚不过了,100~999,所以总计有900种可能的情况。怎样判断这个数是不是水仙花数呢?因为条件是各位上数的立方和等于这个数,那么如果假设这个数是n,并且各数位从高到低分别是abc,那么abc和n之间有种一一对应关系。其实我们这里的问题也就成了知道某个数来拆分其数位了。三个数位拆分如下:
a=Intn/100
b=Intn-100a/10
c=n-100a-b10
条件也就是aaa+bbb+ccc=n。另外,程序的整体结构是循环内套分支。
3.语言、界面、源程序
(1)语言
通过Virual BASIC6.0语言来实现。
(2)界面
界面非常简单,建立一标准EXE工程,其caption设为水仙花数一切OK。我们将代码加给Form_Click即窗体的单击事件,将来运行时,我们只要用鼠标单击一下窗体,程序就执行了。
(3)源程序
Option Explicit
Private Sub Form_Click
Dim n As Integer '声明变量
Dim a b c As Integer
For n=100 To 999
a=Int
n/100
b=Intn-100a/10
c=n-100a-b10
If n=aaa+bbb+ccc Then
Print n '输出
End If
Next n
End Sub
以上程序在VB6.0 WIN 2000下调试通过
4.编程小结
这样我们查出了所有的水仙花数,有四个,分别是153,370,371,407。
另外,还有一个编程中非常有意思的思考问题的方法。在本题中,我们是通过设置设立一个三位数n,然后求出各数位来解题的,当然反之也行,可能这种方法更便于理解,你可以自己试试 哦!
22222222222222222
水仙花数是指一个三位数,其各个数之立方和等于该数。例如153,即为一水仙花数,因为153=1*1*1+5*5*5+3*3*3。
C语言的"水仙花数"实现代码:
void main()
{
int ge,shi,bai,number;
for(number=100;number<1000;number++)
{
bai=number/100;
shi=(number%100)/10;
ge=number%10;
if(number==bai*bai*bai+shi*shi*shi+ge*ge*ge) printf("\nnumber=%d\n",number);
}
getch();
}
Visual Basic的"水仙花数"实现代码:
Private Sub Fo
水仙花数 来自淘豆网m.daumloan.com转载请标明出处.