计算100-999之间的全部“水仙花数”,所谓“水仙花数”:它的值是一个三位数,其各个数字的和等于它本身,例如:153,1^3+5^3+3^3=153,故153成为“水仙花数”。(本人太蠢,没思路做…)

解决方案 »

  1.   

    public class FlowerNumber {
     
    public static void main(String[] args) {
    flower();
    }
    public static void flower() {
    int x = 0,y = 0,z = 0;
    for(int i = 100;i<1000;i++) {
    x = i/100;
    y = (i%100)/10;
    z = (i%100)%10;
    if(x*x*x + y*y*y +z*z*z == i) {
    System.out.print(i+" ");
    }
    }
        }
    }
      

  2.   

    大哥看看我其他问题呗,我以为立方就是“^3”这个东西,没反转过来立方还可以:x*x*x,谢谢哥了,谢谢
      

  3.   

    class Flower {
    public static void main(String[] args) {

    }

    public static findFlower(int min, int max) {
    List<Integer> list = new ArrayList<>();
    if (max < min) {
    return list;
    }
    for (int value = min; value < max; value++) {
    if (isFlower(value)) {
    System.out.println(value);
    }
    }
    }

    public static int[] getBitArray(int value) {
    List<Integer> list = new ArrayList<>();
    do {
    list.add(0, value % 10);
    value = value / 10;
    } while(value != 0);
    return list.toArray();
    }

    public static boolean isFlower(value) {
    int[] array = getBitArray(value);
    int sum = 0;
    for (int i = 0; i < array.length; i++) {
    sum = Math.power(array[i], 3);
    }
    return sum == value;
    }
    }
      

  4.   

    class Flower {
    public static void main(String[] args) {

    }

    public static findFlower(int min, int max) {
    List<Integer> list = new ArrayList<>();
    if (max < min) {
    return list;
    }
    for (int value = min; value < max; value++) {
    if (isFlower(value)) {
    System.out.println(value);
    }
    }
    }

    public static int[] getBitArray(int value) {
    List<Integer> list = new ArrayList<>();
    do {
    list.add(0, value % 10);
    value = value / 10;
    } while(value != 0);
    return list.toArray();
    }

    public static boolean isFlower(value) {
    int[] array = getBitArray(value);
    int sum = 0;
    for (int i = 0; i < array.length; i++) {
    sum = Math.power(array[i], 3);
    }
    return sum == value;
    }
    }