第六屆華爲創新杯編程大賽第二輪(2014.4.29)

第一題:外星人比數的大小java

來自星星的都教授除了全部感官比地球人高出七倍,始終容顏不老之外,還擁有一項在地球人看來特別神奇的能力,他會瞬間(0.00000000000000000000001s之內)按照他的規則比較地球人熟悉的兩個十進制數字的大小,他比較的規則以下:

一、將要比較的兩個數字分別轉換成二進制數字;

二、計算兩個二進制數字中1的個數,個數多的數字爲二者中的大者;

三、負數按照其絕對值進行比較;

請利用地球人發明的計算機程序逼近都教授的特異功能,實現時能夠有如下約束:

一、輸入數據爲範圍在-32768到32768(地球人的十進制世界)之間的任意兩個數字;

二、若是通過比較後2個數相等,輸出爲0,若是不相等,輸出最大值。若是輸入非法,輸出-1。spa

 簡單的字符串題code

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
樣例輸出:        
1blog

排序+貪心排序

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);
}
}
相關文章
相關標籤/搜索