程设作业(递归判断两个数互质)

来源:互联网 发布:java中权限控制框架 编辑:程序博客网 时间:2024/06/05 10:15

giving an integer N (2 <= N <= 20) and a real number M (0.5 < M <= 1), output all proper fractions whose numerator is less than N ,and denominator is equal to or less than N, and value is equal to or less than M.

input: an integer N, a real number M in the type of double, in one line seperated by blank space.

output: proper fractions, each occupies a line. The proper fractions with smaller denominators are in the front. Between two different fractions with same denominator, the one whose numerator is smaller comes first. There is a ‘\n’ after the final fraction number.

Sample:input:6 0.7output:1/21/32/31/41/52/53/51/6

答:

#include<stdio.h>int IFhuzhi(int a, int b) { //a b互质当且仅当 b 与 a % b互质  if (a % b != 0)    return IFhuzhi(b, a % b);  else    if (b == 1)      return 1;    else      return 0;}int main(void) {  int N;  double M;  scanf("%d %lf", &N, &M);  int a, b;  for (b = 2; b <= N; ++b)    for (a = 1; a <= b; ++a)      if (a * 1.0 / b <= M && IFhuzhi(b, a) == 1)        printf("%d/%d\n", a, b);  return 0;}
0 0
原创粉丝点击