迴圈節長度
兩個整數做除法,有時會產生迴圈小數,其迴圈部分稱為:迴圈節。
比如,11/13=6=>0.846153846153….. 其迴圈節為[846153] 共有6位。
這是一道藍橋杯的題目,試卷上是乙個填空題,思路就是不斷的對除數取餘,然後乘10後再取餘,直到餘數在之前出現過或者為0 結束。
為什麼是這樣的呢: 我來試著解釋一下:
首先我先對上面寫的思路模擬一下,好更好的明白我在說的是什麼:
n = 11%13 商 0 餘 11
n = 110%13 商 8 餘 6
n = 60%13 商 4 餘 8
n = 80%13 商 6 餘 2
n = 20%13 商 1 餘 7
n = 70%13 商 5 餘 5
n = 50%13 商 3 餘 11
看到上面的餘數為11,就又回到了第一次取餘的餘數結果。 另外注意上面每次取餘運算獲得的商,連起來就是0.846153 小數部分就是迴圈節,可以用計算器除以下看是不是迴圈節。
那麼為什麼,這樣就能算出來呢?
由題知,迴圈節存在於小數部分,不含整數部分,而在做除法的時候,小數部分是由餘數除以除數產生的。這樣的話只要取出餘數就取出了小數部分,然後要做的就是從小數部分中取出迴圈節,怎末取?
假設x是m/n的小數部分,那麼x*n就是餘數,而((x*n)*10)/n 的商部分就是小數部分的第一位取出來了,然後迴圈,如果發現餘數出現過了,那麼就說明下面要重複迴圈了。
這是題目的**:
public static int f(int n, int m)
}# 橫線上填: return v.size()
如果要求出迴圈節是什麼:
public static int f(int n, int m)
}# 橫線上填: return v.size()
迴圈節長度
兩個整數做除法,有時會產生迴圈小數,其迴圈部分稱為 迴圈節。比如,11 13 6 0.846153846153 其迴圈節為 846153 共有6位。下面的方法,可以求出迴圈節的長度。請仔細閱讀 並填寫劃線部分缺少的 public static int f int n,int m 注意,只能填寫缺少的...
迴圈節長度
藍橋杯第六屆省賽第4題 迴圈節長度 兩個整數做除法,有時會產生迴圈小數,其迴圈部分稱為 迴圈節。比如,11 13 6 0.846153846153 其迴圈節為 846153 共有6位。下面的方法,可以求出迴圈節的長度。請仔細閱讀 並填寫劃線部分缺少的 public static int f int ...
迴圈節長度
從整數n開始,如果n是偶數 把它除以2 如果n是奇數,把它乘 3 加 1 用新得到的數字重複上述步驟,直到 n 1 時停止 例如 n 22 時,該演算法生成的序列是 22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1 對於給定的 n 該序列的元素 包括1 個數被稱為...