int gcd2(int a,int b)//求最大公约数
{ int c;
if(a<b)
{ a=a+b;
b=a-b;
a=a-b;
}
c=a%b;
cout<<a<<" "<<b<<" "<<c<<endl;
while(a%b!=0)
{ a=b;
b=c;
c=a%b;
cout<<a<<" "<<b<<" "<<c<<endl;
system("pause");
}
return b;
}
//result为小数
int c=0;
while(1){ //
if(double(result)==int(result))break;
result=result*10;
c=c+1;//10的次数
}
// cout<<result<<"/"<<pow(10,c);
int fm=pow(10,c);//分母
while(1){
result = result /gcd2(result,fm);
fm = fm /gcd2(result,fm);
//cout<<gcd2(result,fm)<<endl;
//system("pause");
if(gcd2(result,fm)==1)break;
}
cout<<result<<"/"<<fm;
小数转分母 并约分
最新推荐文章于 2023-02-02 14:31:36 发布