给定一个真分数P/Q(P < Q),请你求出它的小数部分都包括0~9中的哪些数字。
例如1/2=0.5,只包含数字5;1/3=0.33333……,只包含数字3,1/7=0.142857142857……,
包含数字124578。
Input
两个整数P和Q,1 ≤ P < Q ≤ 1000000
Output从小到大输出小数部分出现的所有数字
13 123Sample Output
01569
题意:求两数相除后,小数部分有哪些数字(0-9)。
思路: 不必判断循环小数,直接暴力循环100,1000。。。次。 模拟除法过程。
代码:
#include<stdio.h>
int main()
{
int n,m,ca=1000,a[10]={0},sh,re;
scanf("%d%d",&n,&m);
n*=10;
while(ca--)
{
sh=n/m;
re=n%m;
a[sh]++;
if(re==0) //余数为0,跳出。
break;
re*=10; //将余数*10,给n。
n=re;
}
for(int i=0;i<10;i++)
{
if(a[i])
printf("%d",i);
}
printf("\n");
}
int main()
{
int n,m,ca=1000,a[10]={0},sh,re;
scanf("%d%d",&n,&m);
n*=10;
while(ca--)
{
sh=n/m;
re=n%m;
a[sh]++;
if(re==0) //余数为0,跳出。
break;
re*=10; //将余数*10,给n。
n=re;
}
for(int i=0;i<10;i++)
{
if(a[i])
printf("%d",i);
}
printf("\n");
}