分析:在除的过程中,当出现相同余数时即出现循环节。
#include<iostream> using namespace std; bool h[100002]; void div(int x) { int t; memset(h,false,x*sizeof(h[0])+1); h[1]=true; t=1; while(t) { t=t*10; cout<<t/x; t=t%x; if(h[t]) //再次出现相同余数,表示出现循环节 break; h[t]=true; } } int main() { int T,n; cin>>T; while(T--) { cin>>n; if(n<0) { cout<<"-"; n=-n; } if(n==1) { cout<<1<<endl; continue; } cout<<"0."; div(n); cout<<endl; } return 0; }
HDU ACM 2522 A simple problem 模拟除法
原文地址:http://blog.csdn.net/a809146548/article/details/46332585