思路
该题需要程序员们拥有逆向思维,逆向思考该问题即可解决。
注意
新手需要注意以下几处:
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;
}