杭电oj —— 2013

非递归:

import java.util.Scanner;

public class HDU_oj2013 {
	/*
	 * 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了, 其实你们是有所不知:悟空是在研究一个数学问题!
	 * 什么问题?他研究的问题是蟠桃一共有多少个! 不过,到最后,他还是没能解决这个难题,呵呵^-^ 当时的情况是这样的:
	 * 第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个, 以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。
	 * 聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
	 * 
	 */
	public static void main(String[] args) {
		Scanner sn = new Scanner(System.in);
		while (sn.hasNext()) {
			int n = sn.nextInt();
			int Sum = 1; //第n天的一个桃子
			for (int i = n-1; i > 0; i--) // 循环n-1次
				Sum = (Sum + 1) * 2;
			System.out.println(Sum);
		} 
	}
}

递归:

import java.util.Scanner;

public class HDU_OJ2013_1 {
	public static void main(String[] args) {
		Scanner sn = new Scanner(System.in);
		while(sn.hasNext()) {
			int n = sn.nextInt();
			compute(n,1);		
		}
	}
	
	public static void compute(int n,int sum) {
		if(n == 0) {
			return;
		}
		if(n == 1) {
			System.out.println(sum);
		}
		compute(n-1,(sum+1)*2);	
	}
}

猜你喜欢

转载自blog.csdn.net/LiLi_code/article/details/87638330