求迴圈小數的開始位置和迴圈長度

2021-08-26 12:41:43 字數 837 閱讀 4494

題目:

給出被除數和除數,求出迴圈小數的開始位置(小數點之後的位數)和迴圈長度

輸入描述:

第一行包含兩個數字分別是被除數a和除數b (1<= a, b <= 1000000)

輸出描述:

輸出一行,包含乙個兩個數字,分別表示迴圈小數的開始位置和迴圈體的長度(無迴圈則開始位置為結束位置,長度為0)

輸入

1 3輸出

0 1輸入

5 4輸出

2 0

**:

#include 

#include

#include

#include

using

namespace

std;

class solution

map datas;

map::iterator item;

datas.insert(make_pair(a, 0));

dodatas.insert(make_pair(a, ++cnt));

}while(a);

if(a == 0)

cout

<< start << ' '

<< (cnt+1-start) << endl;

}};int main()

求無限迴圈小數的迴圈節長度

新手的 思路 求出小數的小數部分,需要一定的長度,可以將其儲存在陣列中 將陣列分為最長 length 2 部分,一一進行比較判斷是否是迴圈節並求出迴圈節長度 package edu.ecut public class arraytest private intgetrepeatlength int ...

3 求迴圈小數

對於任意的真分數 n m 0 n m 均可以求出對應的小數。如果採用鍊錶表示各個小數,對於迴圈節採用迴圈鍊錶表示,則所有分數均可以表示為如下鍊錶形式。輸入 n m 輸出 轉換後的小數 不超過 50 要求 僅編寫將分數轉換為小數的函式 change int n,int m,node head 前置 v...

1035 最長的迴圈節 迴圈小數)

正整數k的倒數1 k,寫為10進製的小數如果為無限迴圈小數,則存在乙個迴圈節,求 n的數中,倒數迴圈節長度最長的那個數,假如存在多個最優的答案,輸出所有答案中最大的那個數。1 6 0.1 6 迴圈節長度為1 1 7 0.142857 迴圈節長度為6 1 9 0.1 迴圈節長度為1 輸入輸入n 10 ...