HDU 2013 반도 기 (재 귀 + 물 문제)

감복숭아
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 52493    Accepted Submission(s): 39116
Problem Description
서유기 를 좋아 하 는 친구 들 은 오 공이 반 도 를 훔 쳐 먹 는 이 야 기 를 알 고 있 을 것 이다. 너희들 은 이 원숭이 가 너무 시 끄 러 웠 다 고 생각 할 것 이다. 사실은 너희들 은 모 르 는 것 이 있다. 오 공 은 수학 문 제 를 연구 하고 있 는 것 이다!무슨 문제?그 가 연구 한 문 제 는 감복숭아 가 모두 몇 개 냐 는 것 이다!그러나 마지막 까지 그 는 이 어 려 운 문 제 를 해결 하지 못 했다. 하하 ^ - ^ 그 당시 의 상황 은 이 랬 다. 첫날 오 공 은 복숭아 총 수 를 반 이상 먹 었 고 다음 날 남 은 복숭아 를 반 이상 먹 었 으 며 앞으로 매일 전날 남 은 반 이상 을 먹고 n 일 째 먹 으 려 고 할 때 복숭아 만 남 았 다.똑똑 한 당신, 오 공 을 도와 계산 해 보 세 요. 그 가 첫날 부터 먹 기 시 작 했 을 때 복숭아 는 모두 몇 개 였 습 니까?
 
Input
입력 데 이 터 는 여러 그룹 이 있 습 니 다. 각 그룹 이 한 줄 을 차지 하고 하나의 정수 n (1 < n < 30) 을 포함 하 며 복숭아 만 남 았 을 때 n 일 째 발생 한 것 을 의미 합 니 다.
 
Output
각 그룹의 입력 데이터 에 대해 출력 첫날 부터 먹 기 시 작 했 을 때 복숭아 의 총 수 는 각 테스트 실례 가 한 줄 을 차지한다.
 
Sample Input

   
   
   
   
2 4

 
Sample Output

   
   
   
   
4 22

 
Author
lcy
 
AC 코드:
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdlib>
#include<algorithm>
typedef long long LL;
using namespace std;
int f(int n){
	if(n==1)return 1;
	else if(n==2)return 4;
	else return (f(n-1)+1)*2;
}
int main()
{
	int n;
	int ans;
	while(cin>>n){
		ans=f(n);
		printf("%d
",ans); } return 0; }

좋은 웹페이지 즐겨찾기