题目描述
输入正整数 N、 M, 求 N÷M 的值。 如果商的小数部分出现循环节,则输出时要求用圆括号将循环节括起来, 如果商为整数, 则输出为整数。 例如:
1÷2=0.5 1÷3=0.(3) 22÷5=4.4 33÷3=11
输入
一行, 二个整数 N, M, 中间用空格间隔。𝑁,𝑀≤100.
输出
一行, 是 N÷M 的值( 保证小数点后不超过50位,而且未尾不能有多余的0)
样例输入
45 56
样例输出
0.803(571428)
这道题困扰了我很久,现在终于写出了!
#include<bits/stdc++.h>
using namespace std;
int n,m,b[100],a[101];
int main()
{
cin>>n>>m;
if(n%m==0)
cout<<n/m<<endl;
else
{
cout<<n/m<<".";
n=n%m;
for(int i=1;i<=100;i++)
{
b[n]=i;
n=n*10;
a[i]=n/m;
n=n%m;
if(n==0)
{
for(int j=1;j<=i;j++)
cout<<a[j];
break;
}
if(b[n]>0)
{
for(int j=1;j<=b[n]-1;j++)
cout<<a[j];
cout<<"(";
for(int j=b[n];j<=i;j++)
cout<<a[j];
cout<<")";
break;
}
}
}
return 0;
}