第一題:外星人比數的大小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
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); } }