首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JAVA经典算法40题(九)

2012-12-25 
JAVA经典算法40题(9)【程序17】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了

JAVA经典算法40题(9)

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

public class Eat {    static int total(int day){    if(day == 10){        return 1;    }else{        return (total(day+1)+1)*2;    }    public static void main(String[] args){        System.out.println(total(1));    }}

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

import java.util.ArrayList;public class pingpang {    String a, b, c ;    public static void main(String[] args) {        String[] op = { "x", "y", "z" };        ArrayList arrayList=new ArrayList();        for (int i = 0; i < 3; i++)            for (int j = 0; j < 3; j++)                for (int k = 0; k < 3; k++) {                    pingpang a=new pingpang(op[i],op[j],op[k]);                        if(!a.a.equals(a.b)&&!a.b.equals(a.c)&&!a.a.equals("x")                                &&!a.c.equals("x")&&!a.c.equals("z")){                            arrayList.add(a);                        }               }        for(Object a:arrayList){            System.out.println(a);        }    }    public pingpang(String a, String b, String c) {        super();        this.a = a;        this.b = b;        this.c = c;    }    public String toString() {        return "a的对手是"+a+","+"b的对手是"+b+","+"c的对手是"+c+"\n";    }}

?

热点排行