1856 - 猴子吃桃问题

通过次数

0

提交次数

0

时间限制 : 3 秒 内存限制 : 128 MB

有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第m天,猴子吃完桃子之后发现只剩一只桃子了,问这堆桃子原来有多少个? (m<29)

题目输入

第一行有一个整数n,表示有n组测试数据(从第二行开始,每一行的数据为:第m天);

题目输出

每一行数据是桃子的总个数

输入/输出样例

输入格式

2
3
11

输出格式

22
6142

C语言解答

#include<stdio.h>
int main()
{
	int i,m,n,s;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		int j;
		s=1;
		scanf("%d",&m);
		for(j=m;j>=1;j--)
			s=(s+1)*2;
		printf("%d\n",s);
	}
	return 0;
}

C++解答

#include<iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;int a[30];a[0]=1;
	for(int r=1;r<=28;r++)
	a[r]=(a[r-1]+1)*2;
	int b[n+1];
	for(int y=1;y<=n;y++)
	cin>>b[y];
	for(int y=1;y<=n;y++)
	{
		cout<<a[b[y]]<<endl;
	}
}

Java解答

import java.util.Scanner;
public class Main
{
	public static void main(String[] args)
	{
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		while(n-->0)
		{
			int m=sc.nextInt();
			System.out.println(getSums(m));
		}
	}
	public static int getSums(int x)
	{
		int peach=1;
		for(int i=1;i<=x;i++)
		{
			peach=(peach+1)*2;
		}
		return peach;
	}
}