51nod 1035 最长的循环节
2017-09-29 19:01
309 查看
1035 最长的循环节
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数,假如存在多个最优的答案,输出所有答案中最大的那个数。
1/6= 0.1(6) 循环节长度为1
1/7= 0.(142857) 循环节长度为6
1/9= 0.(1) 循环节长度为1
Input
输入n(10 <= n <= 1000)
Output
输出<=n的数中倒数循环节长度最长的那个数
Input示例
10
Output示例
7
题解:
已知整数n,求最小的k使10^k ≡1 (mod n),k<=n。代码:
#include <iostream> #include <cstring> using namespace std; const int MAXN = 1005; int res[MAXN]; // 循环节长度 int main() { memset(res, 0, sizeof(res)); int i, temp, j, n; for (temp = 1; temp <= 1000; temp++) { i = temp; while (i % 2 == 0) { i /= 2; } while (i % 5 == 0) { i /= 5; } n = 1; for (j = 1; j <= i; j++) { n *= 10; n %= i; if (n == 1) { res[temp] = j; break; } } } int max_re; while (cin >> n) { max_re = 1; for (i = 1; i <= n; i++) { if (res[i] > res[max_re]) { max_re = i; } } cout << max_re << endl; } return 0; }
相关文章推荐
- [51Nod 1035 最长的循环节] 循环小数的性质
- 51Nod-点头网-1035 最长的循环节
- 51Nod 1035 最长的循环节
- 51nod 1035 最长的循环节【模拟除法】
- 51nod 1035 最长的循环节(无限小数的循环节)
- 【51Nod】1035 最长的循环节
- 51nod 1035 最长的循环节
- 51Nod-1035-最长的循环节
- 51Nod 1035 最长的循环节
- 51nod 1035:最长的循环节
- 51NOD 1035 最长的循环节(数论)
- 51nod - 1035 最长的循环节 - 数论
- 51nod 1035 最长的循环节
- 51nod 1035最长循环节
- 51nod 1035 最长的循环节
- 51nod 1035:最长的循环节
- 51NOD 1035 最长的循环节
- 51nod 1035:最长的循环节
- 51nod 1035 最长的循环节 数学
- 51Nod - 1035 最长的循环节