第六届蓝桥杯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; } }
恐惧源于无知,代码改变世界