大佬帮忙看一下哪里有问题。
原题链接:64.循环2023-07-14 20:14:30
发布于:广东
正确率只有10%
#include <iostream>
#include <set>
using namespace std;
int findCycleLength(int n, int k) {
int base = 10; // 基数为10
int cycleLength = 0;
set<int> seen;
for (int i = 0; i < k * 2; i++) {
if (seen.count(n)) {
return cycleLength;
}
seen.insert(n);
n = (n * n) % base; // 计算n的当前次幂的最后k位数
cycleLength++;
}
return -1; // 如果循环不存在,返回-1
}
int main() {
int n, k;
cin >> n >> k;
int cycleLength = findCycleLength(n, k);
cout << cycleLength << endl;
return 0;
}
全部评论 5
而且这代码绝对只是碰对了,我代码都85行,还减短了
5天前 来自 江西
0还有,命名别太复杂,建议改一下,容易出错
5天前 来自 江西
0直接把头文件改成#include<bits/stdc++.h>试一试
5天前 来自 江西
0如果真的不会,可以暴力破解,得30分
2023-11-08 来自 浙江
0加油
2023-09-30 来自 北京
0















有帮助,赞一个