在C ++中以1 / n的十进制值查找周期长度
假设我们有一个数字n。我们必须以1/n的十进制值找到周期的长度。因此,如果n的值为7,则1/7=0。142857142857…粗体字母的那个部分正在重复。所以这里的时间长度是6
对于数字n,输出中可以有n个不同的余数,但是由于某些初始余数是非重复的,因此该周期可能不是从第一个余数开始的。因此,我们必须确保从期间中选取余数,从第(n+1)个余数开始,然后开始寻找下一个出现的数。第(n+1)次余数与下一次出现之间的距离是周期的长度。
示例
#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;
}输出结果
Period length of 1/7 is: 6
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短