本文编写于 229 天前,最后修改于 229 天前,其中某些信息可能已经过时。

【程序16】Nine.java
题目:输出9*9口诀。
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

package test50;
 
/**
 * @author VellBibi
 *【程序16】Nine.java 
 *题目:输出9*9口诀。 
 *1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
 */
public class Nine {
 
    public static void main(String[] args) {
        for(int i=1; i<=9; i++){
            for(int j=1; j<=i; j++){
                System.out.print(j + "*" + i + "=" + i*j + "  ");
            }
            System.out.println();
        }
    }
 
}

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

package test50;
 
/**
 * @author VellBibi
 *【程序17】MonkeyEatPeach.java 
 *题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半
 *,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 
 *1.程序分析:采取逆向思维的方法,从后往前推断
 */
public class MonkeyEatPeach {
 
    /**
     * 获取d天前有多少桃子
     * @param d
     * @return
     */
    public static int getNum(int d){
        if(d == 0) return 1;
        else return (getNum(d-1) + 1) * 2;
    }
     
    public static void main(String[] args) {
        System.out.println(getNum(10));
    }
 
}

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

package test50;

/**
 * @author VellBibi
 * 【程序18】 Prog.java 
 * 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。
 * 有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 
 */
public class Prog {

    public static void main(String[] args) {
        String[] team1 = {"a","b","c"};
        String[] team2 = {"x","y","z"};
        for(int i=0; i<3; i++){
            for(int j=0; j<3; j++){
                if(i == 0 && j == 0)//a说他不和x比
                    continue;
                else if(i == 2 && (j == 0 || j == 2))
                    continue;//c说他不和x,z比
                else{
                    System.out.println(team1[i] + "<-->" + team2[j]);
                }
            }
        }
    }

}

【程序19】LingXing.java
题目:打印出如下图案(菱形)

  * 
*** 

*


*

*** 
  * 

1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。

package test50;

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

    public static void print(int n){
        int i = 0;
        int j = 0;
        for(i=0; i<n; i++){//前四行
            for(j=0; j<n+i;j++){
                if(j < n-i-1)
                    System.out.print(" ");
                else
                    System.out.print("*");
            }
            System.out.println();
        }
        
        for(i=1; i<n; i++){//后三行
            for(j=0; j<(2*n-i-1); j++){
                if(j < i)
                    System.out.print(" ");
                else
                    System.out.print("*");
            }
            System.out.println();
        }
    }
    
    public static void main(String[] args) {
        print(4);
    }
}

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

package test50;

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

    public static double add(int n){
        double ans = 0;
        double a = 2;
        double b = 1;
        double cup = 0;
        for(int i=0; i<n; i++){
            ans = ans + a/b;
            cup = a;
            a = a + b;
            b = cup;
        }
        return ans;
    }
    
    public static void main(String[] args) {
        System.out.println(add(20));
    }

}