题解 | #称砝码#

称砝码

http://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c

最简单最容易理解的解法

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String str ="";
        while((str =  reader.readLine()) !=null){

            String str1 = reader.readLine();
            String str2 = reader.readLine();
            int len = Integer.parseInt(str);
            int[] a = new int[len];
            int[] b = new int[len];
            String[] c = str1.split(" ");
            String[] d = str2.split(" ");
            Set<Integer> set = new HashSet();
            for (int i = 0; i < c.length; i++) {//依次遍历每个砝码
                Integer[] x = new Integer[set.size()];
                set.toArray(x);
                int s1 = Integer.parseInt(c[i]);
                int s2 = Integer.parseInt(d[i]);
                while(s2>0) {//依次遍历砝码数
                    set.add(s1 * s2);//每个砝码与砝码数相乘
                    for (Integer n : x) {//将前一个砝码可能性与当前砝码称重相加
                        set.add(n+s1*s2);
                    }
                    s2--;
                }

            }
            System.out.println(set.size()+1);
        }
    }


}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:15
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务