迴圈節長度以及迴圈節

2021-09-25 12:55:25 字數 991 閱讀 8873

迴圈節長度

兩個整數做除法,有時會產生迴圈小數,其迴圈部分稱為:迴圈節。 

比如,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 個數被稱為...