#include<iostream>//计算分数的精确值
using namespace std;
int remainder[101],quotient[101];
//remainber:存放除法的余数;quotient依次存放商的每一位
int main()
{
int m,n,i,j;
cin>>m>>n;//输入被除数和除数
cout<<m<<"/"<<n<<"=0.";
for(i=1;i<=100;i++)//i:商的位数
{
remain[m]=i;//m:除数的余数remainder[m]:余数对应的商的位数
m*=10;//余数扩大10位
quotient[i]=m/n;//商
m=m%n;//求余数
if(m==0)//余数为零即除完
{
for(j=1;j<=i;j++)//表示式有限小数
cout<<qutient[j];//输出商
break;//退出循环
}
if(remain[m]!=0)//若该余数对应的位在前面已经出现过
{
for(j=1;j<=i;j++)
cout<<quotient[j];//则输出循环小数
cout<<"\n是无限循环小数,并从小数点后"<<remainder[m]<<"位";
cout<<"到"<<i<<"位\n";//输出循环节的位置
break;//退出
}
}
system("pause");
return 0;
}
//我们在小学学过的除法公式:及为对余数处理,如果遇到相同的余数后面的数就会和前面的一段数是相同的。
计算分数精确值
猜你喜欢
转载自blog.csdn.net/weixin_43843978/article/details/88055309
今日推荐
周排行