2643: Recurring Decimals
校赛第一轮一道没有做出来的题目,现在看了别人的思路,那个悲剧啊,这道题要我们求所有6位循环小数
稍微思考,得出从1/999999开始,接着一步步往上推,这种数学思想还是要细密才行啊
#include<stdio.h>
int gcd(int a,int b)
{
int t;
while(a)
{
t=b%a;
b=a;
a=t;
}
return b;
}
bool judge(int n)
{
int a,b,c,d,e,f;
a=n/1000;b=n%1000;
if(a==b) return false;
a=n/10000;b=(n/100)%100;c=n%100;
if(a==b&&b==c) return false;
a=n/100000;b=(n/10000)%10;c=(n/1000)%10;
d=(n/100)%10;e=(n/10)%10;f=n%10;
if(a==b&&b==c&&c==d&&d==e&&e==f) return false;
return true;
}
int main()
{
//freopen("out.txt","w",stdout);
for(int i=1;i<999999;i++)
{
if(judge(i))
{
int d=gcd(i,999999);
printf("%d/%d/n",i/d,999999/d);
}
}
return 0;
}