本文主要是介绍华为2014编程大赛初赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
注意事项:1. 每道题最多只能提交5次;
2. 程序从标准输入 stdin('Standard Input')获取输入,并将输出结果输出到标准输出stdout('Standard Output')。 3. 输入输出均不能含有任何提示信息; 4. 测试平台的编译内核为VS2005及JDK1.7 。使用Java答题时,类名必须为"Main",不要使用package关键字声明;使用C/C++答
用VS2005支持的数据类型和函数; 5. 代码中不允许有任何文件操作;
6. 提交答案时请提交全部代码,包括main函数和所有子函数; 7. 答案提交后,点击状态可以查看判题结果及相应提示; 8. 信息注册环节不可跳过,否则无法导出成绩。
外星人比数的大小
描述:
来自星星的都教授除了所有感官比地球人高出七倍,始终容颜不老以外,还拥有一项在地球人看来特别神奇的能力,他会瞬间(0.00000000001s以内)按照他的规则比较地球人熟悉的两个十进制数字的大小,他比较的规则如下:
1、将要比较的两个数字分别转换成二进制数字;
2、计算两个二进制数字中1的个数,个数多的数字为两者中的大者;
3、负数按照其绝对值进行比较;
请利用地球人发明的计算机程序逼近都教授的特异功能,实现时可以有以下约束:
1、输入数据为范围在-32768到32768(地球人的十进制世界)之间的任意两个数字;
2、如果经过比较后2个数相等,输出为0,如果不相等,输出最大值。如果输入非法,输出-1。
运行时间限制: 无限制 内存限制: 无限制
输入: 待比较的2个数。
输出:
按照比较原则,输出最大的值
样例输入:
-30 20 样例输出: -30 答案提示:
#include <stdio.h>
#include<math.h>
void main()
{
int erjinz(int a);
int a,b,x,y,a1,b1;
scanf("%d%d",&a,&b);
if(a>32768||a<-32768||b>32768||b<-32768)
printf("%d",-1);
else
{
a1=abs(a);
b1=abs(b);
x=erjinz(a1);
y=erjinz(b1);
if(x==y)
printf("%d",1);
else
printf("%d",(x>y)?a:b);
}
}
int erjinz(int a)
{
int temp=0;
do {
temp=temp+a%2;
a=a/2; }while(a!=0);
return(temp);
}
笨笨熊搬家打包篇 描述:森林里的笨笨熊今天可开心啦——他买了新房子,乔迁新喜要搬家了。因此,笨笨熊请了许多好朋友来帮忙搬家,并准备了很多小纸盒用来装需要搬的物品,不过,这些纸盒的容积都是相同的,并且最多只能装两个物品。但是,为了不打扰太多的朋友,笨笨熊想了个“聪明”办法:让每个纸盒使用效率最高(注:只要纸盒容积大于物品的体积之和就认为可以装下;物品体积不会大于纸盒容积),这样需要的纸盒最少。为了帮助笨笨熊提前通知朋友,请你根据笨笨熊的办法,帮忙算出:需要纸盒的最少数目是多少?
运行时间限制: 无限制 内存限制: 无限制 输入:
整数V——纸盒的容积; 整数N——物品的总数目N;
共N个整数(对应N个物品的体积,每个整数用空格隔开)。
输出:
整数M——需要纸盒的最少数目;
样例输入:
10
22 3
样例输出: 1答案提示:
#include<stdio.h>
#include<stdlib.h>int least(int* p,int n,int v)
{ int i,j,t,sum=0;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(*(p+i)>*(p+j))
{ t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
}i=n-1;
j=0;
while(i>j)
{ t=*(p+i);
while((t=t+*(p+j))<=v)j++;
sum++;
i--; }
return sum;}
int main(void)
{ int n,v,i;
int *p;
scanf("%d%d",&n,&v);p=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
scanf("%d",p+i);
printf("%d\n",least(p,n,v));
return 0;
}
这篇关于华为2014编程大赛初赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!