一、題目如下:
精確計算:輸入兩個數m,n(均小於100),m/n可能為有限小數,也可能為無限迴圈小數,如:1/4=0.25 1/7=0.142857142857142857......如果m/n為有限小數,則輸出其所有的小數字,如果m/n為無限迴圈小數,則輸出它小數點後面的乙個迴圈節
例如 輸入 1 4 輸出25 輸入2 7輸出285714
二、附上解法:
由於m結果為有理數==>有限小數/無限迴圈小數,除盡 <==> 餘數為0,出現迴圈 <==> 餘數重複出現(與前面任何乙個餘數相等)
(1)有限小數,餘數==0
(2)出現迴圈,餘數重複出現
以上兩個條件作為不再向下除的結束標誌。
由於m,n都是小於100的正整數,所以每次的商最多有100種情況,餘數也最多有100種,所以使用兩個容量為100的陣列儲存餘數和每次餘數除以除數的商。只要新的餘數在儲存的餘數陣列中出現過,因為除數是同乙個,所以這次的商之後的所有的商都會重複出現。
//c語言
#include void printres(int m, int n)
for(i=0; i<100; i++){
result[i] = m / n;
temp = m % n;
remainder[i] = temp;
for(j=0; j
一種計算留存的思路
在一些統計系統中,為了觀察使用者的粘度,我們會計算一系列的叫做留存的指標 次日註冊留存 2日註冊留存.n日註冊留存,比如昨天註冊了1000名使用者中,在今天有300名使用者又登入了,那麼對應於昨天的註冊留存就是30 如果再去細究,還可以去計算活躍使用者的留存情況,比如昨天登入的1000名使用者中,在...
換一種方式計算人生
人的一生到底有多長?這常常被人們當作數學題來計算,並且作為智者的名言,用於教導人們珍惜光陰。人生的計算結果,古今中外各個不同,然而計算方法卻大同小異。無非是把整體的人生進行一系列的減法,然後得出 人生淨差 並以此為結果告訴人們人生之短。以美國 讀者文摘 所刊載的乙個人生算式為例 一生以60歲為標準,...
一種計算e的方法
原理 平均e個 0,1 之間的隨機數之和會大於1.原因 n個數之和小於1的概率是1 n 則n個數之和大於1的概率則是1 1 n 恰好n個數之後大於1的概率,等於n個數之後大於1的概率減去n 1個數之和大於1的概率,即 1 1 n 1 1 n 1 n 1 n 則n的期望為 sum n 1 n n su...