题解
2024-11-05 18:34:57
发布于:广东
13阅读
0回复
0点赞
这一题的难点就在于找循环结。其实很简单,用一个vis来存出现过的除数。如果当前除数之前有,证明找到了循环结。
#include<bits/stdc++.h>
using namespace std;
map<int,bool> vis;//标记数组
bool check(int p){//判断是否形成了循环结
if(vis[p] == 0){
vis[p] = 1;
return 1;
} else {
return 0;
}
}
int main(){
int p,q;
cin >> p >> q;
p *= 10;
while(check(p)){
if(p < q){
cout << 0;
p *= 10;
} else {
cout << p / q;
p -= p / q * q;//分离
p *= 10;
}
}
return 0;
}
这里空空如也
有帮助,赞一个