搜狐_笔试_题目二

import java.util.*;
/*
 * 题目
    工厂生产的产品包装在相同高度h,尺寸为1*1,2*2,3*3,4*4,5*5,6*6的方形包装中.
    这些产品始终以与产品高度相同的尺寸为6*6的包裹交付给客户.
    因为邮费很贵,所以工厂要想方设法地减少每个订单运送时的包裹数量.
    他们很需要有一个好的程序员帮他们解决这个问题从而节省费用.
    现在这个程序由你来设计.
    输入

    输入文件包括几行,每一行代表一个订单.
    每个订单里的一行包括六个整数,中间用空格隔开,分别为1*1至6*6这六种产品的数量.
    输入文件将以6个0组成一行结尾.
    输出

    除了输入的最后一行6个0以外,输入文件里每一行对应着输出文件一行,每一行输出一个整数代表对应订单所需的最小包裹数.
    Example

    Input

    0 0 4 0 0 1
    7 5 1 0 0 0
    0 0 0 0 0 0
    Output

    2
    1
 */
public class Sohu_two {
    public static void getArr(int m, int n, int[][] a) {
        int[] b = new int[m];

        for(int i = 0; i < m; i++) {
            int count = 0;
            if(a[i][5] > 0) count += a[i][5];
            if(a[i][4] > 0) {
                count += a[i][4];
                if(a[i][0] <= a[i][4] * 11) {
                    a[i][0] = 0;
                } else {
                    a[i][0] -= a[i][4] * 11;
                }
            }
            if(a[i][3] > 0) {
                count += a[i][3];
                if(a[i][1] <= a[i][3] * 5) {
                    a[i][1] = 0;
                    if(a[i][0] <= a[i][3] * (20 - a[i][1] * 4)) {
                        a[i][0] = 0;
                    } else {
                        a[i][0] -= a[i][3] * (20 - a[i][1] * 4);
                    }
                } else {
                    a[i][1] -= a[i][3] * 5;
                }
            }
            if(a[i][2] > 0) {
                if(a[i][2] % 4 != 0) {
                    count += a[i][2] / 4 + 1;
                    if(a[i][1] * 4 <= (36 - a[i][2] % 4 * 9)) {
                        int temp = 36 - a[i][2] % 4 * 9 - a[i][1] * 4;
                        a[i][1] = 0;
                        if(a[i][0] <= temp) {
                            a[i][0] = 0;
                        } else {
                            a[i][0] -= temp;
                        }
                    } else {
                        a[i][1] -= (36 - a[i][2] % 4 * 9) / 4;
                    }
                } else  count += a[i][2] / 4;

            }
            if(a[i][1] > 0) {
                if(a[i][1] % 9 == 0) {
                    count += a[i][1] / 9;
                } else {
                    count += a[i][1]/9;
                    int temp = a[i][1] % 9 * 4;
                    if(a[i][0] <= (36 - temp)) {
                        count += 1;
                    } else {
                        count += 1;
                        a[i][0] -= 36 - temp;
                    }
                }
            }
            if(a[i][0] > 0) {
                if(a[i][0] % 36 == 0) {
                    count += a[i][0] / 36;
                } else count += a[i][0] / 36 + 1;
            }
            System.out.println(count);
        }
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m = 2;
        int n = 6;
        int[][] a = new int[m+1][n];
        for(int i = 0; i < m+1; i++) {
            for(int j = 0; j < n; j++) {
                a[i][j] = in.nextInt();
            }
        }

        getArr(2,6,a);
    }

}
时间: 2024-08-03 08:43:10

搜狐_笔试_题目二的相关文章

搜狐_笔试_题目一kolakoski序列

import java.util.*; /* Kolakoski序列是个随机生成的无限序列. 例如,当给定的整数组为[1,2]时,Kolakoski序列是这样的: [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,...] 如果我们将相邻的相同的数字分成一组,那么将会得到: [[1],[2,2],[1,1],[2],[1],[2,2],[1],[2,2],[1,1],[2],[1,1],[2,2],[1],[2],[1,1],[

吉比特_笔试_区间内素数个数

import java.util.Scanner; /** 输入M.N,1 < M < N < 1000000,求区间[M,N]内的所有素数的个数.素数定义:除了1以外,只能被1和自己整除的自然数称为素数 输入描述: 两个整数M,N 输出描述: 区间内素数的个数 示例1 输入 2 10 输出 4 * @author zhaoz * */ public class getMtoNPrime { public static void getPrimeCount(int m, int n) {

搜狐视频笔试

1. 统计数字:计算数字k在0到n中出现的次数,k可能是0-9的一个值 n=12,k=1,在[0,1,2,3,4,56,7,8,9,10,11,12],发现1出现了5次(1,10,11,12) def countK(k,num): count = 0 listK = list(range(num+1)) for item in listK: # print("item = ",item) for i in str(item): # print("i = ",i) i

2014_05_29搜狐笔试部分题目

1.ACID含义 ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability).一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求. 2.二路归并.两个排好序的数组,归并成一个排好序的数组. C:void merge(int *a,i

简述C疑难杂症_序列点(二)

引问:int i=3;  int b=i++*i++;为什么最后的结果是b=9? 答案:(1)标准规定,两个序列点之间,程序执行的顺序可以是任意的,如果一个对象被修改多次,最后留下的是哪次的结果就不确定.不同编译器运行的结果可能就不一样. (2)在相邻的两个序列点之间,一个对象最多只允许被修改一次. (3)C语句结束标志分号(;)是序列点中的一种.也就是说,C语句中由赋值.自增或者自减等引起的副作用(side effect)在分号之前必须结束. (4)没有任何保证确保自增或自减会在输出变量原值之

剑指Offer——当当+搜狐+好未来笔试题+知识点总结

剑指Offer--当当+搜狐+好未来笔试题+知识点总结 情景回顾 时间:2016.9.21 15:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:当当笔试.搜狐笔试.好未来笔试 3场笔试中好未来相对简单点. 好未来编程题 马踏棋盘(贪心算法) ??马踏棋盘是经典的程序设计问题之一,主要的解决方案有两种:一种是基于深度优先搜索的方法,另一种是基于贪婪算法的方法.第一种基于深度优先搜索(DFS)的方法是比较常用的算法,深度优先搜索算法也是数据结构中的经典算法之一,主要是采用递归的

利用朴素贝叶斯分类算法对搜狐新闻进行分类(python)

数据来源  https://www.sogou.com/labs/resource/cs.php介绍:来自搜狐新闻2012年6月-7月期间国内,国际,体育,社会,娱乐等18个频道的新闻数据,提供URL和正文信息格式说明:<doc><url>页面URL</url><docno>页面ID</docno><contenttitle>页面标题</contenttitle><content>页面内容</conten

Python伪开发者对于搜狐云景的测评

Python伪开发者对于搜狐云景的测评 本人是GAE和OpenShift的狂热爱好者,玩过各种国外PaaS.某次想搞个稍微复杂点的Python Web程序,需要比较好的网络传输速度,就试图找前PM(Project Manager)要个国内的VPS耍一把.前PM表示近来搞了个搜狐云景的公测激活码,让我先试试,于是就有了我在SCE的第一个奇怪的Python应用. PS: SCE是搜狐云景是搜狐公司自主研发的与语言无关.可提供弹性伸缩服务的公有云PaaS平台,现致力发展成为最开放的PaaS平台. (无

2017校招运维岗总结(腾讯+百度+京东+华为+中兴+小米+58+平安科技+搜狐+航天三院+Others)

先总结一下面试过的公司吧,可以为后人选择公司作为参考 前面是我对各公司的评价,不想看的可以直接拉到后面   最寒心的: 腾讯 内推的时候问六级过了吗,没过能毕业吗? 然后聊了10分钟项目就挂了 : )    校招的时候,笔试完了状态直接变成了面试未通过 最糟心的: 百度 内推死于二面,技不如人,甘拜下风    校招死于三面,据说百度今年在哈尔滨只招了15人,而且我也有点作死,投的岗位全国招15个  死于三面不甘心啊 最闹心的: 京东 京东直接校招,然后9月8号发短信让9月10号去北京面试,9月9