水仙花数:n位数,每一位的n次方相加等于该数,则为水仙花数。例如:153,1^3+5^3+3^3=153。
/*
* 判断是否为完全二叉树:
* 完全二叉树:除叶子节点外的节点都包含左右节点,此为满二叉树;不为满二叉树,但是叶子节点都集中在左边,没有节点存在有右子树但是没有左子树的情况,也为完全二叉树
* 所以要判断的情况:
* 1、一个节点有右子树但是没有左子树,返回false
* 2、一个节点有左子树没有右子树,此时要求此节点之后的所有节点都为叶子节点,否则返回false
*
* 下面代码的实现思路:利用LinkedList模拟队列,利用其先进先出的特点来便于依次处理节点;
* 设置一个标记判断是否有子树的存在,这个标记会变成true当且仅当左子树为空或右子树为空的时候;
* 一旦该标记为true,后续出现节点存在子树直接返回false即可。
* */
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Random;
public class findKelem {
public static void main(String[] args) {
//求水仙花数
int ge,shi,bai;
int m=0;
int total=0;
for(int i=100;i<1000;i++){
ge=i%10;
shi=i/10%10;
bai=i/100;
int b=(int) (Math.pow(ge,3)+Math.pow(shi, 3)+Math.pow(bai, 3));
if(i==b){
System.out.println(i);
total+=i;
m++;
}
}
System.out.println("1000以内共"+m+"个水仙花数");
}
}