題目:
給出被除數和除數,求出迴圈小數的開始位置(小數點之後的位數)和迴圈長度輸入描述:
第一行包含兩個數字分別是被除數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 ...