水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
从上面的定义可以看出,只要将给出的数字各个位数的数字分解出来,然后把个数字的3次方相加与原数相比是否相等即可判断出是否为水仙花数,给你一段源码,是求100~1000内的水仙花数,有注释,希望对你有帮助:
public class Wflower {
public static void main(String[] args) {
int a=0,b=0,c=0;
Systemoutprintln("水仙花数是:");
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) //如果符合水仙花数
Systemoutprint(" "+i);
}
}
}
public class Yugi {
public static void main(String[] args){
for(int i = 100; i < 1000; i++){
var b = i / 100;
var s = i % 100 / 10;
var g = i % 10;
if(b b b + s s s + g g g == i){
Systemoutprintln(i);
}
}
}
}
这个超级简单,10分钟搞定
public class Test {
public static void checkNumber( int inputNumber ){
int ones = inputNumber %10; //分解个位数
int tens = inputNumber /10 %10; //分解十位数
int hundreds = inputNumber /100; //分解百位数
if( TestgetCubicNumber(ones) + TestgetCubicNumber(tens) + TestgetCubicNumber(hundreds) == inputNumber){
Systemoutprintln( inputNumber + ",");
}
}
public static int getCubicNumber( int input){
return inputinputinput;
}
public static void main(String[] args){
for( int i=100; i<1000; i++){
TestcheckNumber(i);
}
}
}
输出:
153,
370,
371,
407,
100到1000间是水仙花数:
public class test {
public static void main(String[] args) {
for(int i=100; i<1000; i++){
int a = i/100;
int b = i/10%10;
int c = i%10;
if(Mathpow(a,3)+Mathpow(b,3)+Mathpow(c,3)==i)
Systemoutprintln(i+"是水仙花数");
}
}
}
运行结果:
153是水仙花数
370是水仙花数
371是水仙花数
407是水仙花数
100以内是没有水仙花数的!
水仙花数定义:水仙花数是指一个 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=101;i<999;i++){
String s=new Integer(i)toString();
int temp=0;
int n=slength();
for (int j=0;j<n;j++){
temp+=Mathpow(Characterdigit(scharAt(j), 10), n);
}
if(temp==i){
Systemoutprintln(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)
Systemoutprint(f1);
if (n == 2)
Systemoutprint(f2);
else {
Systemoutprint(f1+" ");
Systemoutprint(f2+" ");
for (int i = 2; i < n; i++) {
fn = f1 + f2;
f1 = f2;
f2 = fn;
Systemoutprint(fn+" ");
}
}
}
}
以上就是关于java中求解水仙花数的算法思想是什么全部的内容,包括:java中求解水仙花数的算法思想是什么、编写一个Java程序输出水仙花数。水仙花数指个位数,十位数,百位数3个数的立方和等于这个数的本身。、设计一个Java程序,输出所有的水仙花数。所谓水仙花数,是一个三位数,其各位的立方和等于该数自身,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)