d087: acm-107 - The Cat in the Hat

出處 : http://zerojudge.tw/ShowProblem?problemid=d087

內容 :

一隻神奇聰明貓走進了一間亂七八糟的房間,他不想自己動手收拾,他決定要找幫手來工作。於是他從他的帽子中變出了N隻小貓來幫他(變出來的貓,高度為原來貓的 1/(N+1) )。這些小貓也有帽子,所以每一隻小貓又從他的帽子中變出N隻小小貓來幫他。如此一直下去,直到這些小小小....貓小到不能再小(高度=1),他們的帽子無法再變出更小的貓來幫忙,而這些最小的貓只得動手打掃房間。注意:所有貓的高度都是正整數。

在這個問題中,給你一開始那隻貓的高度,以及最後動手工作的貓的數目(也就是高度為1的貓的數目)。要請你求出有多少隻貓是沒有在工作的,以及所有貓的高度的總和。

輸入說明 :

每組測試資料一列,有2個正整數分別代表一開始那隻貓的高度,以及最後動手工作的貓的數目。0 0代表輸入結束。

輸出說明 :

每組測試資料輸出一列,包含2個正整數分別代表有多少隻貓是沒有在工作的,以及所有貓的高度的總和。

範例輸入 :

216 125

5764801 1679616

64 1

0 0

範例輸出 :

31 671

335923 30275911

6 127

提示 :

* 中文翻譯:Lucky 貓

出處 :

(管理:MAPLEWING)

解題策略

解以下方程式

(n+1)^k=a

n^k=b 求n,k

多少貓沒有做事為 (n^k-1)/(n-1)

所有貓高度和=a+n*(a/n+1)+a*(n/n+1)^2+...+a(n/n+1)^k

=a(1+n/n+1+(n/n+1)^2+...+(n/n+1)^k)

=a((n/n+1)^(k+1)-1)/(n/n+1-1)

=a((b/a)*(n/n+1)-1)/(-1/(n+1))

=(n+1)(a-b*(n/n+1))

=(n+1)*a-b*n

待完成或參考程式碼