solution.md 1.1 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1 2 3 4 5
# 循环节长度

两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。   
比如,11/13=6=>0.846153846153….. 其循环节为[846153] 共有6位。   
下面的方法,可以求出循环节的长度。  
每日一练社区's avatar
每日一练社区 已提交
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
请你填补空白处的内容:

```cpp
#include <bits/stdc++.h>
using namespace std;

int f(int n, int m)
{
    n = n % m;
    vector<int> v;
    for (;;)
    {
        v.push_back(n);
        n *= 10;
        n = n % m;
        if (n == 0)
            return 0;
        if (find(v.begin(), v.end(), n) != v.end())
        {
            __________________
        }
    }
}
int main()
{
    int n, m;
    cin >> n >> m;
    cout << f(n, m) << endl;
    return 0;
}
```
每日一练社区's avatar
每日一练社区 已提交
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

## aop

### before

```cpp

```

### after

```cpp

```

## 答案

```cpp
每日一练社区's avatar
每日一练社区 已提交
55
return v.size() - (find(v.begin(), v.end(), n) - v.begin());
每日一练社区's avatar
每日一练社区 已提交
56 57 58 59 60 61 62
```

## 选项

### A

```cpp
每日一练社区's avatar
每日一练社区 已提交
63
return v.size() - (find(v.begin(), v.end(), n) + v.begin());
每日一练社区's avatar
每日一练社区 已提交
64 65 66 67 68
```

### B

```cpp
每日一练社区's avatar
每日一练社区 已提交
69
return v.size() + (find(v.begin(), v.end(), n) - v.begin());
每日一练社区's avatar
每日一练社区 已提交
70 71 72 73 74
```

### C

```cpp
每日一练社区's avatar
每日一练社区 已提交
75
return v.size() - find(v.begin(), v.end(), n) - v.begin();
每日一练社区's avatar
每日一练社区 已提交
76
```