哪里有问题 急急急 20
查看原帖
哪里有问题 急急急 20
866969
telankesi楼主2022/12/4 21:08
#include <stdio.h>
#include <math.h>
int a[50][2];
int n;
int m;//记录最小
void fun(int i, int x, int y, int min);
int main()
{
    
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        scanf("%d %d", &a[i][0], &a[i][1]);
  }
    m = abs(a[1][0] - a[1][1]);
    fun(1, a[1][0], a[1][1], m);
    printf("%d", m);
    return 0;
}
void fun(int i, int x, int y,int min) {
    if (i>n) {
        m = min < m ? min : m;
    }

    else {
        int q, w;
        q = abs(x - y) < abs(x * a[i][0] - y) ? abs(x - y) : abs(x * a[i][0] - y);
        w= abs(x - y) < abs(x  - y-a[i][1]) ? abs(x - y) : abs(x - y-a[i][1]);
        fun(i + 1, x * a[i][0], y,q);
        fun(i + 1, x, y + a[i][1],w);
    }
}
2022/12/4 21:08
加载中...