迴圈小數 UVa202

2021-09-08 17:57:00 字數 721 閱讀 9528

輸入整數a和b(0<=a<=3000,1<=b<=3000),輸出a/b的迴圈小數表示以及迴圈節長度。

例如,a=5,b=43,小數表示為0.(116279069767441860465),迴圈位元組長度為21

這個題,忘了怎樣使a/b的結果保留多位小數!!!

具體方法為計算得出其多位小數(位數要足夠大),再判斷其週期,週期不會超過分母就在小於範圍內的週期乙個乙個判斷即可。

注意,該題迴圈不一定是從小數點後一位數開始,可能從之後才開始迴圈

寫吐了

#include#include

#include

#include

using

namespace

std;

int p[3000

];int

main()

while(1)

if(flag)break

;

//cout<}

if(flag)

printf(

")\n");

printf(

"%d = number of digits in repeating cycle\n\n

",c);

break

; }

k++;}}

//system("pause");

return0;

}

UVA 202 迴圈小數

題意 給出兩個數n,m,求n m的迴圈小數。並輸出是多少位。大致思路 模擬除法運算,而什麼時候就可以知道這是乙個迴圈節了呢,其實很簡單,就是第一次同一餘數出現兩次時就可以說他是乙個迴圈節了。比如1 6 第一次餘數為1,1作為餘數出現了,標記一下,表示1已經出現了,此時的1乘以10就會變成10,繼續模...

UVA 202 迴圈小數

題目大意 輸入整數a,b 0 a 3000,1 b 3000 輸出 a b 的迴圈小數表示以及迴圈節長度。code include include includeusing namespace std const int maxn 300005 int rem maxn quo maxn 分別記錄餘...

uva202迴圈小數

此題為演算法入門經典的3 8 這題輸入格式為第二行前面三個空格,然後進行兩個換行。思路主要是通過兩個陣列進行模擬兩者的運算過程,乙個陣列儲存商,乙個陣列儲存餘數,自己進行手算模擬幾次就可以想到,如果有迴圈小數的話,他的餘數會與前面的餘數相等,一旦出現餘數相等,說明出現了迴圈體,就可以進行標記和bre...