第一题:外星人比数的大小
来自星星的都教授除了所有感官比地球人高出七倍,始终容颜不老以外,还拥有一项在地球人看来特别神奇的能力,他会瞬间(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
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);
}
}
第六届华为创新杯编程大赛第二轮(2014.4.29),码迷,mamicode.com