林扬泉 • 4个月前
我们可以用一个数组存余数,每次循环判断两种情况,具体思路看代码:
#include<bits/stdc++.h>
using namespace std;
int ys[110];//存余数
int m,n;
int main(){
scanf("%d%d",&m,&n);
printf("%d/%d=0.",m,n);
for(int i=1;i<100;i++){
ys[m]=i;
m*=10;//写扩大往后移一位
printf("%d",m/n);//输出
m%=n;//余数m
if(m==0){//除得尽
break;
}
if(ys[m]!=0){//循环节出现!!!
printf("\nfrom %d to %d",ys[m],i);
break;
}
}
printf("\n");
return 0;
}
评论: