hamletroy 发表于 2022-10-30 16:42:44

分数拆分问题

怎么用两个循环嵌套求解?{:10_282:}

jackz007 发表于 2022-10-30 16:42:45

本帖最后由 jackz007 于 2022-10-30 18:23 编辑

#include <stdio.h>

int main(void)
{
      int k , x , y                                          ;
      scanf("%d" , & k)                                    ;
      for(x = k + 2 , y = k + 1 ; x > y ; y ++) {
                if(! ((k * y) % (y - k))) {
                        x = k * y / (y - k)                  ;
                        printf("1/%d=1/%d+1/%d\n" , k , x , y) ;
                }
      }
}
      编译、运行实况
D:\\C>g++ -o x x.c

D:\\C>x
4
1/4=1/20+1/5
1/4=1/12+1/6
1/4=1/8+1/8

D:\\C>

tommyyu 发表于 2022-10-30 18:13:27

本帖最后由 tommyyu 于 2022-10-30 18:14 编辑

没用嵌套循环,但也做出来了
#include<iostream>
using namespace std;
int main()
{
        int n; cin>>n;
        int a, b;
        for(int i = 1; i <= n; ++i)
        {
                if(n*n % i == 0) {
                        a = n + n*n / i;
                        b = n + i;
                        cout << "1/" << n << "=1/" << a << "+1/" << b << endl;
                }
        }
        return 0;
}
分数拆分 -> https://blog.csdn.net/weixin_42498163/article/details/112783615

hamletroy 发表于 2022-10-31 00:07:25

1 #include<stdio.h>
2
3 int main()
4 {
5   int x, y, k, a, b;
6   scanf("%d",&k);
7   a = k*(k+1);
8   x = a;
9   while(x<=a&&x>k)
10   {
11         y = x;
12         while((y<=x)&&(y>k))
13         {
14             b = k*x+k*y;
15             if(x*y==b)
16             {
17               printf("1/%d=1/%d+1/%d\n", k, x, y);
18               y = y - 1;
19             }
20             x = x -1;
21         }
22   }
23   return 0;
24 }
页: [1]
查看完整版本: 分数拆分问题