题目 简单的说就是将有限循环小数和无限循环小数转化为分数形式。比如: 0.9 = 9/10 0.333(3) = 1/3,其中括号表示循环节。
#include<iostream>
#include<stdio.h>
using namespace std;
int gcd(int m,int n) //求公约数
{
int r = 1;
while(r)
{
r = m%n;
m = n;
n = r;
}
return m;
}
int main()
{
int a,b,c;
cout<<"输入整数部分、不循环部分、循环部分:"<<endl;
cin>>c>>a>>b;
if(a==0&&b==0)
cout<<c;
else
{
int up=c;
int down=1;
int ta=a;
while(ta)
{
down*=10;
ta/=10;
}
up=c*down+a;
if(b!=0)
{
int wb=1;//确定数目
int tb=b;
while(tb)
{
wb*=10;
tb/=10;
}
up=up*(wb-1)+b;
down=down*(wb-1);
}
int fac=gcd(up,down);
cout<<up/fac<<"/"<<down/fac<<endl;
}
return 0;
}