zoukankan      html  css  js  c++  java
  • 第六届华为创新杯编程大赛第二轮(2014.4.29)

    第一题:外星人比数的大小

    来自星星的都教授除了所有感官比地球人高出七倍,始终容颜不老以外,还拥有一项在地球人看来特别神奇的能力,他会瞬间(0.00000000000000000000001s以内)按照他的规则比较地球人熟悉的两个十进制数字的大小,他比较的规则如下:

    1、将要比较的两个数字分别转换成二进制数字;

    2、计算两个二进制数字中1的个数,个数多的数字为两者中的大者;

    3、负数按照其绝对值进行比较;

    请利用地球人发明的计算机程序逼近都教授的特异功能,实现时可以有以下约束:

    1、输入数据为范围在-32768到32768(地球人的十进制世界)之间的任意两个数字;

    2、如果经过比较后2个数相等,输出为0,如果不相等,输出最大值。如果输入非法,输出-1。

     简单的字符串题

    import java.util.Scanner;
    public class Main{
        public static void main(String[] args)   {
            Scanner in =new Scanner(System.in);
            int m,n;
            String m1,n1;
            int mm,nn,mo = 0,no=0;
            mm=0;
            nn=0;
            Boolean flag=true;
            if(in.hasNextInt())
            mo=in.nextInt();
            else {
                flag=false;}
            if(in.hasNextInt())
            no=in.nextInt();
            else {
                flag=false;}
            if(!flag){
                System.out.println("-1");return;
            }
            m=Math.abs(mo);
            n=Math.abs(no);
            if(m>32768 || n>32768){
                System.out.println("-1");return;
            }
            m1=Integer.toBinaryString(m);
            n1=Integer.toBinaryString(n);
            //System.out.println(m1);
            //System.out.println(n1);
            for(int i=0;i<m1.length();i++){
                if(m1.charAt(i)=='1'){
                    mm++;
                }
            }
            for(int j=0;j<n1.length();j++){
                    if(n1.charAt(j)=='1'){
                        nn++;
                    }        
            }
            if(mm>nn)
                System.out.println(mo);
            else if(mm<nn)
                System.out.println(no);
            else
                System.out.println("0");
            
    }  }

     第二题:笨笨熊搬家打包篇
    描述:        
    森林里的笨笨熊今天可开心啦——他买了新房子,乔迁新喜要搬家了。因此,笨笨熊请了许多好朋友来帮忙搬家,并准备了很多小纸盒用来装需要搬的物品,不过,这些纸盒的容积都是相同的,并且最多只能装两个物品。但是,为了不打扰太多的朋友,笨笨熊想了个“聪明”办法:让每个纸盒使用效率最高(注:只要纸盒容积大于物品的体积之和就认为可以装下;物品体积不会大于纸盒容积),这样需要的纸盒最少。为了帮助笨笨熊提前通知朋友,请你根据笨笨熊的办法,帮忙算出:需要纸盒的最少数目是多少?   


    运行时间限制:        无限制
    内存限制:        无限制
    输入:        
    整数V——纸盒的容积;
    整数N——物品的总数目N;
    共N个整数(对应N个物品的体积,每个整数用空格隔开)。

    输出:        
    整数M——需要纸盒的最少数目;    
        
    样例输入:        
    10

    2 3
    样例输出:        
    1

    排序+贪心

    import java.util.Arrays;
    import java.util.Scanner;
    public class Main{
        public static void main(String[] args){
            Scanner in =new Scanner(System.in);
            int v,n,m;
            m=0;
            int k=0;
            v=in.nextInt();
            n=in.nextInt();
            int a[]=new int[n];
            for(int i=0;i<n;i++){
                a[i]=in.nextInt();
            }
            Arrays.sort(a);
            for(int j=n-1;j>=k;j--){
                if(a[j]+a[k]>v){
                    m++;
                }
                else {
                    k++;
                    m++;
                }
                    
            }
            System.out.print(m);
    }
    }
  • 相关阅读:
    Java中二进制数与整型之间的转换
    校招小白机考入坑之从键盘输入java的各种数据类型
    使用flume抓取tomcat的日志文件下沉到kafka消费
    Scala学习笔记之Actor多线程与线程通信的简单例子
    通过流的方式操作hadoop的API
    Windows环境下使用kafka单机模式
    scrapy
    python 虚拟环境
    celery使用
    redis install
  • 原文地址:https://www.cnblogs.com/liu-bei/p/3700483.html
Copyright © 2011-2022 走看看