Week 4

1.母猪的故事

题目:
话说现在猪肉价格这么贵,著名的ACBoy 0068 也开始了养猪生活。说来也奇怪,他养的猪一出生第二天开始就能每天中午生一只小猪,而且生下来的竟然都是母猪。
不过光生小猪也不行,0068采用了一个很奇特的办法来管理他的养猪场:
对于每头刚出生的小猪,在他生下第二头小猪后立马被杀掉,卖到超市里。
假设在创业的第一天,0068只买了一头刚出生的小猪,请问,在第N天晚上,0068的养猪场里还存有多少头猪?
输入格式:
测试数据的第一行包含有一个正整数T,代表测试数据的个数。接下来有T组测试,每组测试数据占一行,分别有一个正整数N代表0068创业的第N天。(0<N<20)
输出格式:
对于每组数据,请在一行里输出第N天晚上养猪场里猪的数目。
输入样例:
2
2
3
输出样例:
2
3
思路:
先多组输入输入数据
利用for循环输入每组数据
定义一个数组存放数据
数组的第一、二数分别为1、2,之后为前两个数的和

代码:

int main()
{
    
    
	int N,j,c;
	scanf("%d",&j);
	for(c=0;c<j;c++){
    
    
	while(scanf("%d",&N)!=EOF){
    
    
	int a[20];
	int i;
	a[0]=1;
	a[1]=2;
	for(i=2;i<20;i++)
	{
    
    
		a[i]=a[i-1]+a[i-2];
	}
	if(N==1)
	{
    
    
		a[i]=1;
	}
	if(N==2)
	{
    
    
		a[i]=2;
	}
	if(N!=1 && N!=2)
	{
    
    
		i=N-1;
		a[i]=a[i-1]+a[i-2];
	}
	printf("%d\n",a[i]);
}
}
}

2.程序设计:轻重搭配

题目:
n 个同学去动物园参观,原本每人都需要买一张门票,但售票处推出了一个优惠活动,一个体重为 x 的人可以和体重至少为2x配对,这样两人只需买一张票。现在给出了n个人的体重,请你计算他们最少需要买几张门票?
输入格式:
第一行一个整数 n,表示人数。
第二行 n 个整数,每个整数 ai表示每个人的体重。
输出格式:
一个整数,表示最少需要购买的门票数目。
数据范围:
对于30%的数据:
1<=n<=25,1<=ai<=100。
对于60%的数据:
1<n<=10000,1<=ai<=1000。
对于100% 的数据:
1<=n<=5*10(5),1<=ai<=10(5)。
样例解释:
1和9配对,7和3配对,剩下5,5 单独,一共买四张票。
输入样例:
6
1 9 7 3 5 5
输出样例:
4
代码:

#include<stdio.h>
#include<stdlib.h>
int comp(const void *a,const void *b)
{
    
    
	return *(int*)a-*(int*)b;
}
int main()
{
    
    
	int i,j,n;
	int a[500010];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
    
    
		scanf("%d",&a[i]);
	}
	qsort(a,n+1,sizeof(int),comp);
	for(i=1;i<=n;i++)
	{
    
    
		printf("%d ",a[i]);
 	}
 	int count;
 	i=n/2;
 	j=n;
 	while(i)
	{
    
    
  		if(a[i]*2<=a[j])
		{
    
    
   			count++;
   			i--;
   			j--;
  		}
  		else i--;
	}
 	printf("\n%d",n-count);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_63294590/article/details/121799280
今日推荐