2008年3月30日 星期日

Problem 10018 Reverse and Add,反轉再相加

這題是有關palindrome(迴轉字)的計算。
將輸入的數字倒轉過來,例如1234變成4321。然後與原數相加,產生新的數字。在重複相加的結果,如果數值倒轉過來與原數字相同,則這個數字就叫做palindrome(迴轉字)。
這題要列印出某輸入數字算成palindrome所需的加法次數及這個palindrome。
下列C語言程式碼是解答的重點部份,digitNum是輸入值的位數,reverse是倒轉過來的新數字,剩下來程式部分如相加、及判斷結束的條件應該很容易就OK了。
digitNum = floor(log10(num)+1);
for (j=digitNum-1; j>=0; j--)
{
reverse += num%10 * (int)(pow(10,j)+0.001);
num /= 10;
}

p10018題目連結
回ACM題庫目錄
回首頁

沒有留言: