第六届蓝桥杯java b组第二题

立方变自身

观察下面的现象,某个数字的立方,按位累加仍然等于自身。 
1^3 = 1 
8^3 = 512 5+1+2=8 
17^3 = 4913 4+9+1+3=17 

请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个?

请填写该数字,不要填写任何多余的内容或说明性的文字。

首先一看就类似于严蔚敏版的c语言中的水仙花数,这样我们就采用直接套

暴力破解模型

import java.util.ArrayList;

public class Test2A {

    public static void main(String[] args) {
        int count = 0;

        for (int i = 1; i < 1000; i++) {
            ArrayList<Integer> array = new ArrayList<Integer>();
            array = chage(i * i * i);// 这里将数据变为ArrayList 存入其中
            if (check(i, array)) {
                ++count;
                see(array);
                System.out.println(" "+i);
            }
        }
        System.out.println(count);
    }

    private static void see(ArrayList<Integer> array) {
        for(int i=array.size()-1;i>=0;i--){
            System.out.printf("%d",array.get(i));
        }
    }

    private static boolean check(int i, ArrayList<Integer> array2) {
        int sum = 0;
        for (int n = array2.size()-1; n >=0; n--) {
            sum = sum + array2.get(n);
        }
        if(sum==i){
            return true;
        }else{
            return false;
        }
        
    }

    private static ArrayList<Integer> chage(int i) {
        int temp=0;
        ArrayList<Integer> arrayList=new ArrayList<Integer>();
        int length=(i+"").length();
        for(int n=0;n<length;n++){
            if(i>10){
                temp=i%10;
                arrayList.add(temp);
                i=i/10;
            }else{
                arrayList.add(i);
            }
        }
        return arrayList;
    }

}

 

posted @ 2018-03-25 14:33  coder-zhou  阅读(167)  评论(0编辑  收藏  举报