利用C++编程输出两个数相除时的第一个循环节 并输出从哪开始循环到哪为止?
1个回答
展开全部
#include <iostream>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
if(n==0||m==0)
break;
int s=0,k=0;
int a[100],b[100];
if(n>=m)
{
s=n/m;
n=n%m;
}
while(n!=0)
{
n=n*10;
a[k]=n/m;
n=n%m;
b[k]=n;
for(int i=0;i<k;i++)
if(b[i]==n)
{
n=0;
cout<<"从第"<<i+1<<"位小数循环"<<"到第"<<k+1<<"位为止"<<endl;
cout<<"循环的位数有"<<k-i<<"位"<<endl;
break;
}
k++;
}
cout<<s<<'.';
for(int j=0;j<k;j++)
cout<<a[j];
cout<<endl;
}
return 0;
}
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
if(n==0||m==0)
break;
int s=0,k=0;
int a[100],b[100];
if(n>=m)
{
s=n/m;
n=n%m;
}
while(n!=0)
{
n=n*10;
a[k]=n/m;
n=n%m;
b[k]=n;
for(int i=0;i<k;i++)
if(b[i]==n)
{
n=0;
cout<<"从第"<<i+1<<"位小数循环"<<"到第"<<k+1<<"位为止"<<endl;
cout<<"循环的位数有"<<k-i<<"位"<<endl;
break;
}
k++;
}
cout<<s<<'.';
for(int j=0;j<k;j++)
cout<<a[j];
cout<<endl;
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询