java基础习题50道(四)

package com.oracle.day161105_java50;

/*
 * 【程序16】
题目:输出9*9口诀。
程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
 * 
 * 
 * */
public class Demo16 {

public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}

   
}


}



package com.oracle.day161105_java50;


/*
 * 
 * 【程序17】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,
还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
程序分析:采取逆向思维的方法,从后往前推断。
 * */
public class Demo17 {


public static void main(String[] args) {
// TODO Auto-generated method stub


int n=1;
for(int i=1;i<=10;i++ ){
n=(n+1)*2;

}
System.out.println("小猴子共摘了"+n+"桃子");

// int m = 1;
//  for(int i=10;i>0;i--)
//    m = 2*m + 2;
//  System.out.println("小猴子共摘了"+m+"桃子");
}


}


package com.oracle.day161105_java50;


import java.util.ArrayList;


/*
 * 【程序18】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,
乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 
 * */
public class Demo18 {
String a,b,c;//甲队成员
public static void main(String[] args){
String[] racer = {"x","y","z"};//乙队成员
ArrayList<Demo18> arrayList = new ArrayList<Demo18>();
for(int i=0;i<3;i++)
 for(int j=0;j<3;j++)
   for(int k=0;k<3;k++){
    Demo18 demo18 = new Demo18(racer[i],racer[j],racer[k]);
    if(!demo18.a.equals(demo18.b) && !demo18.a.equals(demo18.c) && !demo18.b.equals(demo18.c) &&
      !demo18.a.equals("x") && !demo18.c.equals("x") && !demo18.c.equals("z"))
      arrayList.add(demo18);
   }
 for(Object obj:arrayList)
   System.out.println(obj);
}
//构造方法
private Demo18(String a,String b,String c){
this.a = a;
this.b = b ;
this.c = c;
}
public String toString(){
return "a的对手是"+a+"  "+"b的对手是"+b+"  "+"c的对手是"+c;
}
}


package com.oracle.day161105_java50;


/*
 * 
 * 【程9
题目:打印出如下图案(菱形)
    *
   *** 
 ****** 
******** 
 ****** 
  *** 
   * 
程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第��控制行,第二层控制列
 * */
public class Demo19 {


public static void main(String[] args){
int n = 5;
printStar(n);
}
//打印星星
private static void printStar(int n){
//打印上半部分
for(int i=0;i<n;i++){
for(int j=0;j<2*n;j++){
  if(j<n-i)
   System.out.print(" ");
  if(j>=n-i && j<=n+i)
   System.out.print("*");
 }
 System.out.println();
}
//打印下半部分
for(int i=1;i<n;i++){
System.out.print(" ");
for(int j=0;j<2*n-i;j++){
if(j<i)
   System.out.print(" ");
  if(j>=i && j<2*n-i-1)
   System.out.print("*");
}
System.out.println();
}
}
}


package com.oracle.day161105_java50;


/*
 * 【程序20】
          题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
          程序分析:请抓住分子与分母的变化规律。
 * */
public class Demo20 {


public static void main(String[] args) {
// TODO Auto-generated method stub
 double x = 2;//定义初始分子等于2
 double y = 1;//定义初始分母等于1
 double n = 0;//定义分数2/1
 double num = 2/1;
//for循环用来记录次数
for(int i=1;i<20;i++){
   double temp = y;
   y=x;//新的分母
   x=x+temp;//新的分子
n=x/y;
num=num+n;//总和得加上初始的2/1
System.out.print("["+x+"/"+y+"]");
}
System.out.println();
System.out.println("总和为:"+num);
}
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值