problem description
zty很痴迷數學問題.。一天,yifenfei出了個數學題想難倒他,讓他回答1 / n。但zty卻回答不了^_^. 請大家程式設計幫助他.
input
第一行整數t,表示測試組數。後面t行,每行乙個整數 n (1<=|n|<=10^5).
output
輸出1/n. (是迴圈小數的,只輸出第乙個迴圈節).
sample input
4 2 3 7 168
sample output
0.5 0.3
0.142857
0.005952380
思路:就是模擬除法的過程,只要除法中的除數之前用過,那就是重複的迴圈結了,用個標記陣列記錄即可。如果有限小數,除到餘數為0結束就好。
注意點:有可能n是負數。
#include#include#include#includeusing namespace std;
#define n 100005
int hash[n];
void div(int n)
if(n==1)
cout<<1
}return 0;
}
習題3 8 迴圈小數
我是利用比較字串相等找出迴圈字長的,記憶體消耗大,時間複雜度高,原諒我是數學渣渣。ps 建議利用餘數相等找迴圈字長,有時間再更!include includeusing namespace std int arr 1005 int main while a b continue else if j ...
3 求迴圈小數
對於任意的真分數 n m 0 n m 均可以求出對應的小數。如果採用鍊錶表示各個小數,對於迴圈節採用迴圈鍊錶表示,則所有分數均可以表示為如下鍊錶形式。輸入 n m 輸出 轉換後的小數 不超過 50 要求 僅編寫將分數轉換為小數的函式 change int n,int m,node head 前置 v...
迴圈小數轉化為分數
眾所周知迴圈小數是可以轉化為分數的。把迴圈小數轉化為分數一般用極限的方法,比如0.33333.可以看成是0.3 0.03 0.003 這個等比數列的值,然後求等比數列的和,設有n個數,則根據等比數列公式得和為0.3 1 0.1 n 1 0.1 化簡得 1 0.1 n 3,n為無限多個,n趨於無窮大時...