杭电OJ 2042 解题思路

思路

该题需要程序员们拥有逆向思维,逆向思考该问题即可解决。

注意

新手需要注意以下几处:
1.第一次羊的数量为2,此段循环我们可以有两种思路:一是建立一个if判断,若为第一次循环则带入第一次的羊的数量。二是设置羊的初始数量为2.
在这里我们以第一种思路为例。
2.注意for循环,若定义为counter=0,则需要定义循环条件为 counter<count .

代码

#include <stdio.h>
#define nowsheep 3 //现在是3只羊
int main()
{
	int sf , counter , sheep ; //收费站,计数器,羊的数量(第二种思路的同学,此处设定为sheep=2)
	int tcount , tcounter ; //总循环次数与总循环计数器
	scanf ( "%d" , &tcount ) ; //用户设置总循环次数
	for (tcounter = 0 ; tcounter < tcount ; tcounter++)
		{
			scanf( "%d" , &sf ); //用户设置收费站数量
			for(counter = 0 ; counter < sf ; counter++)
			{
				if ( counter == 0 )
				{
					sheep = ( nowsheep - 1 ) * 2;
				}
				else
				{
					sheep = ( sheep - 1 ) * 2;
				}
		}
	printf( "%d\n" , sheep );
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值