69,373
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include <stdbool.h>
bool check_denominator(int n)
{
if(1 == n)
return false;
else if(0 == n % 2)
return check_denominator(n/2);
else if(0 == n % 5)
return check_denominator(n/5);
else
return true;
}
int greatest_common_divisor(int a, int b)
{
int common = b % a;
while (common != 0) {
b = a;
a = common;
common = b % a;
}
return a;
}
int main(){
int a, b, n, ret = 1;
int common;
scanf("%d", &n);
while (n--) {
ret = scanf("%d%d", &a, &b);
common = greatest_common_divisor(a, b);
if (false == check_denominator(b/common))
printf("Yes\n");
else if(true == check_denominator(b/common))
printf("No\n");
}
return 0;
}
分母只含有2或5的任意次方或者2与5结合的整数的分数都能化成有限小数
除此之外的分数都能化成无限循环小数
遇到问题,还是建议楼主多动手,多去查查资料。
遇到问题就直接请别人帮忙反而不好。请人帮忙是解决问题的一种方法,但是不是首选的,或者第一步做的。而应该是最后一步做的,前面的应该是自己在努力想办法解决问题。