一、描述
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);
}
}
}
}
}
}
}
运行结果: