复试上机题集(5)

版权声明:转载请注明出处 https://blog.csdn.net/nanhuaibeian/article/details/88903601
  1. 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,
    鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
#include "stdio.h"

void main(){
	int i,j,k;
	int sum=100;
	for(i=0;i<=100;i++){
		for(j=0;j<=100;j++){
			for(k=0;k<=100;k++){
				if((i+j+k==100)&&k%3==0){
					if((i*5+j*3+k/3)==sum)
					printf("%d,%d,%d\n",i,j,k);
				}
			}
		}
	}
}
  1. 如果一个渔夫从 2011 年 1 月 1 日开始每三天打一次渔,两天晒一次网,
    编程实现当输入 2011 1 月 1 日以后的任意一天,输出该渔夫是在打渔还是在晒网。
# include "stdio.h"

void main() {
	int year=2011,month=1,day=1;
	int y=2011,mt=1,d=4;
//	scanf("%d,%d,%d",&y,&mt,&d);
	int i,sum=0,flag,temp;
	int m[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
	if(y>2011) {
		for(i=2012; i<y; i++) {
			flag=0;
			if((y%4==0&&y%100!=0)||y%400==0)	flag=1;
			sum=sum+365+flag;
		}
		sum=sum-1;
		for(i=1; i<mt; i++) {
			if(i==2)	sum=sum+m[i]+flag;
			else sum=sum+m[i];
		}
		sum=sum+d;
		temp=sum%5;
		if(temp>3)	printf("筛网!");
		else printf("打渔!");

	} else {
		for(i=1; i<mt; i++) {
			sum=sum+m[i];
		}
		sum=sum-1+d;
		temp=sum%5;
		if(temp>3)	printf("筛网!");
		else printf("打渔!");
	}

}
  1. 假设一对兔子的成熟期是一个月,即一个月可长成成兔,
    那么,如果每对成兔每个月都生一对小兔,一对新生的小兔从第二个月起就开始生兔子,
    试问从一对兔子开始繁殖,以后每个月会有多少对兔子?
#include "stdio.h"
void main(){
	int a=1,b=1,m,i,temp;
	scanf("%d",&m);
	if(m==1||m==2)	printf("1");
	else{
		for(i=3;i<=m;i++){
			temp=a;
			a=b;
			b=b+temp;
		}
		printf("%d",b);
	}
	
} 
  1. 一只兔子躲进了 10 个环形分布的洞的某一个,狼在第一个洞没有找到兔子,
    就隔一个洞,到第三个洞去找,也没有找到,就隔两个洞,到第六个洞去找,以后每次多隔一个洞
    去找兔子……这样下去,结果一直找不到兔子,请问:兔子可能躲在哪个洞中?
#include "stdio.h"
typedef struct{
	int id;
	int flag;
}st;

void main(){
	int i;
	st a[11];
	for(i=1;i<=10;i++){
		a[i].id=i;
		a[i].flag=0;
	}
	i=1;
	int sum=0;
	while(i<10){
		if((sum+i)%10==0)	sum=10;
		else sum=(sum+i)%10;
		a[sum].flag=1;
//		printf("%d\n",a[sum].id);
		i++;
	}
	for(i=1;i<=10;i++){
		if(a[i].flag==0)	printf("%d\n",a[i].id);
	}
}

猜你喜欢

转载自blog.csdn.net/nanhuaibeian/article/details/88903601