2012-08-10 161 views
0

我正在嘗試一些在線問題。我編程瞭如何解決2個兩位數字的最大回文產品。例如91 * 99 = 9009。我設法通過使用遞歸函數來做到這一點,但我不知道如何使用這樣的數組來做到這一點?將計算值存儲到數組中

product[0]=9; 
product[1]=0; 
product[2]=0; 
product[3]=9; 

或者計算出的產品是否爲969;

product[0]=9; 
product[1]=6; 
product[2]=9; 

然後我會輸出它從最後一個索引開始到第一個索引,然後測試它是否等於原始數字。

編輯: 我的問題是,我如何將計算的產品存儲到數組?

+0

你也應該編輯問題的名稱。 – 2012-08-10 06:06:57

+0

目前尚不清楚爲什麼你認爲使用數組會有所幫助。您可以在不使用數組的情況下製作迭代解決方案。提示:'String.charAt'。 – 2012-08-10 06:09:30

+0

如果它是一個迴文,那麼只需在'List li = new ArrayList (); while(product> 0){li.add(product%10); product/= 10;}'並測試'li'列表是否是迴文數組。 – 2012-08-10 06:09:31

回答

1

沒有理由使用數組來解決Project Euler問題。但是如果你注意到它,那麼有一個簡單的算法來將數組數組轉換爲數字。只是這樣做:

int number = 0; 
int number_2 = 0; 

//going forwards: 
for (int i = 0; i < array.length; i++) 
{ 
    number = number * 10 + array[i]; 
} 

//going backwards: 
for (int i = array.length - 1; i >= 0; i--) 
{ 
    number_2 = number_2 * 10 + array[i]; 
} 

if (number == number_2) 
{ 
    //you have a palindrome 
} 

這不是最有效的方法,我知道(@ Nandkumar的速度更快),但它真的很簡單,那就是我的目標了。

0

我不會寫你的代碼,因爲它看起來像一個任務,但我會給你一個提示。

首先將int轉換爲字符串。

字符串中的字符與數組非常相似,因此將字符串轉換爲數組很容易。

1

從整數產品中創建一個新的String

+0

我刪除了投票,投票的原因剛轉換成'String'也不會回答他的'modified'問題。 '編輯:我的問題是,我如何將計算的產品存儲到數組中?' – SiB 2012-08-10 06:29:07

+0

字符串有char數組,所以您只需要從String類請求表示。我試圖不解決這個作業,像OP的問題。 – dcow 2012-08-10 06:33:37

0

將數字轉換到一個數組,你可以試試這個...

Char [] product = String.valueOf("969").toCharArray(); 
+1

OP不詢問如何檢查數組是否是迴文。 – dcow 2012-08-10 06:12:03

+2

然後刪除答案,因爲它與問題不再相關。不回答這個問題是downvote的完全有效的理由。 – dcow 2012-08-10 06:14:25

+0

你如何建議OP從兩個整數變量的乘積中獲得字符串字符串「939」? – dcow 2012-08-10 06:16:55

0

提供你的產品String.valueOf(int),它會轉換爲字符串,然後使用String.toCharArray()它轉換成數組一樣

boolean palindrome = true; 
int product = 9009; // or any calculated number 
char str[] = String.valueOf(product).toCharArray(); 

for(int i=0,j=str.length-1; i!=j ;i++,j--) { 
    if(str[i] == str[j]){ 
     continue; 
    } else { 
     palindrome = false; 
     break; 
    } 
} 
+0

ohh。我懂了。我缺少.toCharArray()。我剛開始學習像2周前的Java,我仍然想知道你們如何設法找出正確的代碼。謝謝! – WannaCSharp 2012-08-10 06:27:12

+0

沒關係我讀錯了 – dcow 2012-08-10 06:28:41

+0

@DavidCowden:我和j本地循環,並在循環的範圍內,所以你會如何得出結論產品是迴文或不是? – 2012-08-10 06:30:52