本文主要是介绍循环小数-分数备忘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
虽然比较简单,但是代码比我的优美多了,果断转#include <iostream>
using namespace std;
int f(int u,int v)
{while(u%v){int w=u%v;u=v;v=w;}return v;
}
int main()
{int t;while(cin>>t){while(t--){char a[15];cin>>a;int p=0,q=0,t=0,x=0,y,k=1,l=1,max;for(int i=2;a[i]!='\0';i++){if(!t && a[i]!='(') {p++;x*=10;x+=a[i]-'0';}if(t && a[i]!=')') {q++;y*=10;y+=a[i]-'0';}if(a[i]=='(') {t=1;y=x;q=p;}}if(!q){while(p--)k*=10;max=f(x,k);x/=max;k/=max;cout<<x<<'/'<<k<<endl;}else{int m=y-x;while(p--)k*=10;while(q--)l*=10;int n=l-k;max=f(m,n);m/=max;n/=max;cout<<m<<'/'<<n<<endl;}}}return 0;
}
这篇关于循环小数-分数备忘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!