Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm độ dài chu kỳ trong phần thập phân của 1/n trong C++


Cho n, tìm độ dài chu kỳ lặp trong phần thập phân của 1/n. Ví dụ n=7 → 1/7=0.142857... chu kỳ 6.

Tìm dư (n+1) rồi tìm lần xuất hiện tiếp theo của dư đó, khoảng cách là độ dài chu kỳ.

Ví dụ

#include<iostream> using namespace std; int periodLength(int n) {    int remainder = 1;    int length = 0;    for (int i = 1; i <= n+1; i++)    remainder = (10*remainder) % n;    int d = remainder;    do {       remainder = (10*remainder) % n;       length++;    } while(remainder != d);       return length; } int main() {    int n = 7;    cout << "Period length of 1/"<<n<<" is: " << periodLength(n) << endl; }

Kết quả

Period length of 1/7 is: 6