package s1; //题目:输出9*9口诀。 // // 程序分析:分行与列考虑,共9行9列,i控制行,jC列。 public class Fs16 { public static void main(String[] args) { int m=1,n=1,k=0; for (n=1;n<=9;n++){ for (m=1;m<=n;m++){ k=n*m; System.out.print(n+"*"+m+"="+k+" "); } System.out.println(" "); } } } 其他写法
public static void main(String[] args)
{ for (inti = 1; i <= 9;i++)
{ for (intj = 1; j <=i ;j++)
{ System.out.print(i+"*"+j+"="+i*j+" ");//输出结果 }
System.out.println();//换行 }
}
package s1; //题目:猴子吃桃问题:猴子第一天摘下若干个桃子, // 当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半, // 又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 public class Fs17 { public static void main(String[] args) { int c=1; for ( int i=2;i<=10;i++) { c =2 * (c + 1); System.out.println(c); } } } 参考写法
程序分析:采取逆向思维的方法,从后往前推断。
天 数 1 2 3 4 5 。。。10
桃子数 1 4 10 22 46 ?
* 所以桃子数计算方法:前一天桃子数*2+2
- 1
public class Programme17 {
public static void main(String[] args) {
int sum=1;//第一天桃子的数量
for (inti =2; i <=10;i++) {//第二天才开始计算
sum=sum*2+2;
}
System.out.println("猴子摘的桃子数为:"+sum);
}
}
package s1; //题目:两个乒乓球队进行比赛,各出三人。 // 甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。 // 有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 public class Fs18 { public static void main(String[] args) { int a=1,b=2,c=3,x=2,y=3,z=1;//定义一下队员的编号 if (c!=x&&c!=z){ System.out.println("c队员的对手是y"); }if (a!=x&&c==y){ System.out.println("a队员的对手是z"); }if (c==y&&a==z){ System.out.println("b队员的对手是x"); } } } 其他写法
public class Programme18 {
public static void main(String[] args) {
String a = null,b=null,c=null;//甲队成员
String[] racer = {"x","y","z"};//乙队成员
for(inti=0;i<3;i++){
for (intj = 0; j <3;j++) {
for (intk = 0; k < 3;k++) {
if (i!=j&&i!=k&&j!=k) {
a=racer[i]; b=racer[j];c=racer[k];
if (!a.equals("x")&&!c.equals("z")&&!c.equals("x")) {
if (a.equals(racer[i])&&b.equals(racer[j])&&c.equals(racer[k])) {
System.out.println("a的对手是:"+racer[i]+",b的对手是:"+racer[j] +",c的对手是:"+racer[k] );
}
}
}
}
}
}
}