水仙花数定义:水仙花数是指一个
n
(
n≥3
),它的每个位上的数字的
n
次幂之和等于它本身。(例如:1^3
+
5^3
+
3^3
=
153)
//100-999之间的数
public
class
Demo
{
public
static
void
main(String
[]
a){
for
(int
i=101i<999i++){
String
s=new
Integer(i).toString()
int
temp=0
int
n=s.length()
for
(int
j=0j<nj++){
temp+=Math.pow(Character.digit(s.charAt(j),
10),
n)
}
if(temp==i){
System.out.println(i)
}
}
}
}
//不太清楚你所说的100间的斐波那契数是什么概念
是100以内的斐波那契数
还是100步以内的斐波那契数,下面给你写的程序里面n是步数
public
class
Demo
{
public
static
void
main(String[]
args)
{
int
n
=
20
fib(n)
}
public
static
void
fib(int
n)
{
long
f1
=
1,
f2
=
1,
fn
=
0
if
(n
==
1)
System.out.print(f1)
if
(n
==
2)
System.out.print(f2)
else
{
System.out.print(f1+"
")
System.out.print(f2+"
")
for
(int
i
=
2
i
<
n
i++)
{
fn
=
f1
+
f2
f1
=
f2
f2
=
fn
System.out.print(fn+"
")
}
}
}
}
水仙花数是指一个n
位数
(
n≥3
),它的每个位上的数字的
n
次幂之和等于它本身。
从上面的定义可以看出,只要将给出的数字各个位数的数字分解出来,然后把个数字的3次方相加与原数相比是否相等即可判断出是否为水仙花数,给你一段源码,是求100~1000内的水仙花数,有注释,希望对你有帮助:
public
class
Wflower
{
public
static
void
main(String[]
args)
{
int
a=0,b=0,c=0
System.out.println("水仙花数是:")
for
(int
i
=
100
i
<
1000
i++)
//遍历所有3位数
{
a
=
i/100
//获取3位数中百位的数
b=i%100/10
//获取3位数中十位的数
c=i%100%10
//获取3位数中个位的数
a
=
a
*
a
*
a
//计算第一位数的立方
b
=
b
*
b
*
b
//计算第二位数的立方
c
=
c
*
c
*
c
//计算第3位数的立方
if
((a
+
b
+
c)
==
i)
//如果符合水仙花数
System.out.print("
"+i)
}
}
}