基础编程题(17~18)

17、猴子吃桃问题

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少。

17.1、程序分析

  • 实现思路:
    假设第一天有n个桃子,既有如下分析:n1=n(n1为第一天桃子数)
日期桃子数
day1n1=n
day2n2= n1/2 - 1
day3n3= n2/2 - 1
day4n4= n3/2 - 1
day5n5= n4/2 - 1
day6n6= n5/2 - 1
day7n7= n6/2 - 1
day8n8= n7/2 - 1
day9n9= n8/2 - 1
day10n10= n9/2 - 1 = 1

经分析可得数学表达式:ni = 2*n(i+1) + 2

17.2、代码实现

方法1:

public class Test {
	public static void main(String[] args) {
		int n=1; //第十天的桃子数
		for(int i=0;i<9;i++) {
			n = 2*n+2;
		}
		System.out.println("第一天共摘了" + n + "个桃子。");
	}
}

方法2:

public class Test {
	public static void main(String[] args) {
		int days = 9; 
		int n1 = 0, n10 = 1; //定义第一天和第十天的桃子数
		while (days > 0) {
			n1 = (n10 + 1) * 2;
			n10 = n1;
			days--;
		}
		System.out.println("第一天共摘了" + n1 + "个桃子。");
	}
}

18、两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

18.1、程序分析

18.2、代码实现

public class Test {
	public static void main(String[] args) {

		int i, j, k;
		// 声明i,j,k分别为A,B,C的对手;
		for (i = 'x'; i <= 'z'; i++) {
			for (j = 'x'; j <= 'z'; j++) {
				for (k = 'x'; k <= 'z'; k++) {
					if (i == 'x' || j == i || k == 'x' || k == 'z' || k == i || k == j)
						continue;
					System.out.print("a----" + (char) i + ";b----" + (char) j + ";c----" + (char) k);
				}
			}
		}
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值