JAVA基础编程50题(16-18题)详解
一、描述
1、输出9*9表。程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
2、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个, 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少。
程序分析:采取逆向思维的方法,从后往前推断,第10天剩下一个,那第9天就是(1+1)*2=4,第8天(4+1)*2=10个,以此类推。
3、两个乒乓球队进行比赛,各出三人,甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单,有人向队员打听比赛的名单,a说他不和x比,c说他不和x,z比,请编程序给出两两对决的名单。
程序分析:假设a,b,c的对手分别是i,j,k,每个人的对手不可能是同一个人,并且满足以上条件
二、源代码
程序1
package tong.yue.day2; /** * 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 * @author tong * */ public class MulTable { public static void main(String[] args) { System.out.println("-----九九乘法表-----"); for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++) { System.out.print(j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); } } }
运行结果:
程序2
package tong.yue.day2; import tong.yue.hong.SumOneNum; /** * 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个, 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少。 程序分析:采取逆向思维的方法,从后往前推断,第10天剩下一个,那第9天就是(1+1)*2=4,第8天(4+1)*2=10个,以此类推。 * @author tong * */ public class EatPear { public static void main(String[] args) { //第10天的桃子数量 int sum = 1; for (int i = 9; i >= 1; i--) { sum = (sum+1)*2; System.out.println("小猴子第"+i+"天有"+sum+"个桃子"); } System.out.println("小猴子第一天共摘了"+sum+"个桃子"); } }运行结果:
程序3
package tong.yue.day2; /** * 题目描述:两个乒乓球队进行比赛,各出三人,甲队为a,b,c三人,乙队为x,y,z三人。 * 已抽签决定比赛名单,有人向队员打听比赛的名单,a说他不和x比,c说他不和x,z比,请编程序给出两两对决的名单。 * 分析:假设a,b,c的对手分别是i,j,k,每个人的对手不可能是同一个人,并且满足以上条件 * @author tong * */ public class SportsGame { public static void main(String[] args) { //假设i是a的对手,j是b的对手,k是c的对手 char i,j,k; for(i='x';i<='z';i++){ for(j='x';j<='z';j++) { //a的对手不等于b的对手 if(i!=j){ for(k='x';k<='z';k++) { //a的对手不等于c的对手,b的对手不等于c的对手, if(i!=k && j!=k) { //a的对手不能是'x',c的对手不能是'x',c的对手不能是'z' if(i!='x' && k!='x'&& k!='z') //输出满足条件的对手 System.out.println("a---"+i+",b---"+j+",c---"+k); } } } } } } }运行结果:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。