立方變自身(藍橋杯)

觀察下面的現象,某個數字的立方,按位累加仍然等於自身。
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);
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章