首页 > 2021/7/22 阿里笔试题
头像
keboom
发布于 2021-07-22 10:18
+ 关注

2021/7/22 阿里笔试题

第一题:

题目描述:

对于分数Xi / Yi ,我们给T组数据,n表示每组数据有n个分数,让这些分数相加看是否能等于一个整数,如果相加为整数返回Yes,否则返回No。

用例数据:

2
3
1 2
1 3
1 6
4
2 3
4 6
2 6
3 8

Yes
No

我的思路是从头到尾两两合并,合并到最后看分子和分母如果相等就为Yes。

合并的话,要求分母的最小公倍数(可我不会求,菜狗啊!!!),然后合并

下面是我的代码,我本地调试没问题,但是保存运行他总说我超出边界,zero/0,是除数为零了?还是超出边界了?不知道啊。

下面是菜狗的没成功的代码:

import java.util.Scanner;

/**
 * @author keboom
 * @date 2021/7/21
 */
public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        String[] result = new String[T];
        for (int i = 0; i < T; i++) {
            int n = sc.nextInt();
            int[] x = new int[n];
            int[] y = new int[n];
            for (int j = 0; j < n; j++) {
                x[j] = sc.nextInt();
                y[j] = sc.nextInt();
                if (x[j] == 0) {
                    result[i] = "Yes";
                    break;
                }
            }
            boolean res = sum(x, y);
            if (res) {
                result[i] = "Yes";
            } else {
                result[i] = "No";
            }
        }

        for (int i = 0; i < T; i++) {
            System.out.println(result[i]);
        }
    }

    public static boolean sum(int[] x, int[] y){
        int[] res = {x[0],y[0]};
        for (int i = 1; i < x.length; i++) {
            int[] merge = merge(res[0], res[1], x[i], y[i]);
            res[0] = merge[0];
            res[1] = merge[1];
        }
        if (res[0] == res[1]) {
            return true;
        } else {
            return false;
        }
    }

    public static int[] merge(int x1, int y1,int x2,int y2) {
        int mu = 1;
        if (y2 % y1 == 0) {
            mu = y2;
            x1 = y2/y1 * x1;
        } else {
            mu = y1 * y2;
            x1 = y2 * x1;
            x2 = y1 * x2;
        }
        int x = x1 + x2;
        return new int[]{x, mu};
    }
}

第二题是什么牛额,应该时动态规划,没来得及看

全部评论

(5) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐