觀察下面的現象,某個數字的立方,按位累加仍然等於自身。
1^3 = 1
8^3 = 512 5+1+2=8
17^3 = 4913 4+9+1+3=17
...
請你計算包括1,8,17在內,符合這個性質的正整數一共有多少個?
請填寫該數字,不要填寫任何多餘的內容或說明性的文字。
答案:6
解析:這個題難度不大,一個int類型的整數,最大也就是2億多,一個數的三次方接近等於2億多,那麼這個數也不會太大,即便是一個很大的數也沒事,直接用大數BigInteger來做就可以了。
代碼如下:
import java.math.BigInteger;
public class 立方變自身
{
private static int cnt = 0; //計數
public static void Method(int n)
{
BigInteger a = BigInteger.valueOf(n); //將n轉成大數
BigInteger b = a.pow(3); //n的3次方
String str = b.toString();
int sum = 0;
for(int i=0,t=str.length();i<t;++i) //逐位相加
{
sum = sum + (str.charAt(i)-'0'); //將數字字符轉換爲數字
}
if(sum==n)
{
cnt++; //滿足條件+1
}
}
public static void main(String[] args)
{
for(int i=1;i<=10000;++i) //這個數最小爲1,最大不超過10000
{
Method(i);
}
System.out.println(cnt);
}
}