34 北理工的恶龙
成绩: 10 / 折扣: 0.8
背景:
最近,北理工出现了一只恶龙,它长着很多头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集全校所有勇士杀死这只恶龙。要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。校长想花 最少的学分数杀死恶龙,于是到你寻求帮助。
最近,北理工出现了一只恶龙,它长着很多头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集全校所有勇士杀死这只恶龙。要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。校长想花 最少的学分数杀死恶龙,于是到你寻求帮助。
456什么意思网络流行语输入:
第一行 龙头数 n , 勇士人数 m ( 1<=n, m<=100 ) 接下来 n 行,每行包含一个整数,表示龙头的直径 接下来 m 行,每行包含一个整数,表示勇士的身高 l
第一行 龙头数 n , 勇士人数 m ( 1<=n, m<=100 ) 接下来 n 行,每行包含一个整数,表示龙头的直径 接下来 m 行,每行包含一个整数,表示勇士的身高 l
测试输入 | 期待的输出 | 时间限制 | 存限制 | 额外进程 | |
测试用例 1 | 以文本方式显示 1.2 3↵ 2.5↵ 3.4↵ 4.7↵ 5.8↵ 6.4↵ | 以文本方式显示 1.11↵ | 1秒 | 64M | 0 |
测试用例 2 | 以文本方式显示 1.2 1↵ 2.5↵ 3.5↵ 4.10↵ | 以文本方式显示 1.bit is doomed!↵ | 1秒 | 64M | 0 |
#include<stdio.h>
void main()
{
int s=0,t,i,j,m,n,a[100],b[100],c[100];
for(i=0;i<=99;i++)
a[i]=0,b[i]=0,c[i]=0;
scanf("%d%d",&m,&n);
for(i=0;i<=m-1;i++)
scanf("%d",&a[i]);
for(i=0;i<=n-1;i++)
scanf("%d",&b[i]);
if(m>n)
printf("bit is doomed!\n");
else
{
for(i=0;i<=m-1;i++)
for(j=i;j<=m-1;j++)
{if(a[i]>a[j])
{t=a[i],a[i]=a[j],a[j]=t;}}
for(i=0;i<=n-1;i++)
for(j=i;j<=n-1;j++)
{if(b[i]>b[j])
{t=b[i],b[i]=b[j],b[j]=t;}}
t=0;
for(i=0;i<=m-1;i++)
for(j=0;j<=n-1;j++)
if(a[i]<=b[j])
{c[t]=b[j];
t++;
b[j]=0;
break;}
if(t<m)
printf("bit is doomed!\n");
else
{for(i=0;i<=t;i++)
s=s+c[i];
printf("%d\n",s);}
}
}
35 杀鸡用牛刀——要用递归啊!
成绩: 5 / 折扣: 0.8
背景:
哈哈!我们终于学了递归了,现在大家一定感到非常有意思吧,那个典型的“汉诺塔”问题,一个非常短的程序居然可以完成如此复杂的工作,真是神奇啊!来吧,让我们也动手编写一个递归程序,当然,我们要编写的不可能太复杂。
哈哈!我们终于学了递归了,现在大家一定感到非常有意思吧,那个典型的“汉诺塔”问题,一个非常短的程序居然可以完成如此复杂的工作,真是神奇啊!来吧,让我们也动手编写一个递归程序,当然,我们要编写的不可能太复杂。
输入:
区间的起始点n 区间的终止点m
区间的起始点n 区间的终止点m
输出:
累加和
累加和
要求:
使用递归算法完成。如此简单的题目当然要有隐含的测试用例啦,就3个,看看谁能猜出来。
使用递归算法完成。如此简单的题目当然要有隐含的测试用例啦,就3个,看看谁能猜出来。
测试输入 | 期待的输出 | 时间限制 | 存限制 | 额外进程 | |
测试用例 1 | 以文本方式显示 1.1 10↵ | 以文本方式显示 1.The sum from 1 to 10 is 55.↵ | 1秒 | 64M | 0 |
测试用例 2 | 以文本方式显示 1.10 15↵ | 以文本方式显示 1.The sum from 10 to 15 is 75.↵ | 1秒 | 64M | 0 |
#include<stdio.h>
int sum(int m,int n)
{
int i;
if(n==m)
i=n;
else
i=n+sum(m,n-1);
return(i);
}
void main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("The sum from %d to %d is %d.\n",m,n,sum(m,n));
发布评论