[PTA]7-22 龟兔赛跑(20分)

[PTA]7-22 龟兔赛跑(20分)

C语言的龟兔赛跑问题,用的办法比较笨,逻辑应该还算清晰。

#include <stdio.h>

int main()
{
	int RabbitDistance,T,time=0;//time在这里计数,以10位单位,每10分钟检查一次龟兔的距离。
	scanf("%d",&T);
	if(T <= 10){
		printf("^_^ %d",9*T);//输入T小于10的情况,兔子直接赢,跑过距离T*9
	}else{
		RabbitDistance=90,time=10;
		while(time <= T-30){
			if(RabbitDistance > 3*time){
				time+=30;
			}else{
				RabbitDistance+=90;
				time+=10;
			}
		}//t从0开始,每过10分钟判定一次距离长短,兔子大于乌龟,则t+30(休息三十分钟),否则t+10,兔子在10分钟内跑90,循环在t<=T-30内进行。
		if((T-time)>=0 && (T-time)<10){
			if(RabbitDistance<=3*time){
				RabbitDistance+=(T-time)*9;
			}
		}else if((T-time)>=10 && (T-time)<20){
			if(RabbitDistance <= 3*time){
				RabbitDistance += 90;
				time += 10;
				if(RabbitDistance <= 3*time){
					RabbitDistance += (T-time)*9;
				}
			}
		}else if((T-time)>=20 && (T-time)<30){
			if(RabbitDistance <= 3*time){
				RabbitDistance+=90;
				time+=10;
				if(RabbitDistance <= 3*time){
					RabbitDistance+=90;
					time+=10;
				}
			}//这里三个if主要是判别T-t<30的三种情况,最终计算出兔子跑的距离。
		}
		if(RabbitDistance > 3*T){
			printf("^_^ %d",RabbitDistance);
		}else if(RabbitDistance == 3*T){
			printf("-_- %d",3*T);
		}else{
			printf("@_@ %d",3*T);
		}//无论兔子跑的距离是哪种情况,乌龟的距离始终是T*3。
	}
	return 0;
}

后续会改进。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值