アイデア:この質問は非常に長く見えます。実際、質問の本質は、老人が料金所を通過するたびに、[(全体の半分)-1]羊の数を連れ去られるということです。このように、最後に残った羊から、forループを使用して操作を反対方向にトラバースできます。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner a=new Scanner(System.in);
int N=a.nextInt();
while(a.hasNext())
{
int m=a.nextInt();
if(m<=30&&m>0)
{
int sum=3;
for(int i=0;i<m;i++)
{
sum=(sum-1)*2;
}
System.out.println(sum);
}
}
}
}
エラーがある場合は、訂正してください。