[转帖]JAVA经典算法几例(4)_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 12589 | 回复: 0   主题: [转帖]JAVA经典算法几例(4)        下一篇 
    本主题由 yuyanzheng 于 2013-2-1 16:47:12 版块置顶
liulin_2
注册用户
等级:少校
经验:1143
发帖:85
精华:5
注册:2012-12-10
状态:离线
发送短消息息给liulin_2 加好友    发送短消息息给liulin_2 发消息
发表于: IP:您无权察看 2012-12-14 9:31:06 | [全部帖] [楼主帖] 楼主

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

 public class jiujiu {
      public static void main(String[] args)
      {
            int i=0;
            int j=0;
            for(i=1;i<=9;i++)
            { for(j=1;j<=9;j++)
                  System.out.print(i+"*"+j+"="+i*j+"t");
                  System.out.println();
            }
      }
}


不出现重复的乘积 (下三角)

 public class jiujiu {
      public static void main(String[] args)
      {
            int i=0;
            int j=0;
            for(i=1;i<=9;i++)
            { for(j=1;j<=i;j++)
                  System.out.print(i+"*"+j+"="+i*j+"t");
                  System.out.println();
            }
      }
}


上三角

 public class jiujiu {
      public static void main(String[] args)
      {
            int i=0;
            int j=0;
            for(i=1;i<=9;i++)
            { for(j=i;j<=9;j++)
                  System.out.print(i+"*"+j+"="+i*j+"t");
                  System.out.println();
            }
      }
}


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

 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比,请编程序找出三队赛手的名单。 
1. 程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 

 import java.util.ArrayList;
public class pingpang {
      String a,b,c;
      public static void main(String[] args) {
      String[] op = { "x", "y", "z" };
            ArrayList<pingpang> arrayList=new ArrayList<pingpang>();
            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;
      }
      @Override
      public String toString() {
      // TODO Auto-generated method stub


return "a 的对手是"+a+","+"b 的对手是"+b+","+"c 的对手是"+c+"\n";

 }
}


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

 *
***
******
********
******
***
*


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

 public class StartG {
      public static void main(String [] args)
      {
            int i=0;
            int j=0;
            for(i=1;i<=4;i++)
            { for(j=1;j<=2*i-1;j++)
                  System.out.print("*");
                  System.out.println("");
            }
            for(i=4;i>=1;i--)
            { for(j=1;j<=2*i-3;j++)
                  System.out.print("*");
                  System.out.println("");
            }
      }
}


菱形:

 public class StartG {
      public static void main(String [] args)
      {
            int i=0;
            int j=0;
            for(i=1;i<=4;i++)
            {
                  for(int k=1; k<=4-i;k++)
                  System.out.print(" ");
                  for(j=1;j<=2*i-1;j++)
                  System.out.print("*");
                  System.out.println("");
            }
            for(i=4;i>=1;i--)
            {
                  for(int k=1; k<=5-i;k++)
                  System.out.print(" ");
                  for(j=1;j<=2*i-3;j++)
                  System.out.print("*");
                  System.out.println("");
            }
      }
}


【程序 20】 题目:有一分数序列:2/13/25/38/513/821/13...求出这个数列的前20项之和。 
1. 程序分析:请抓住分子与分母的变化规律。 

 public class test20 {
      public static void main(String[] args) {
            float fm = 1f;
            float fz = 1f;
            float temp;
            float sum = 0f;
            for (int i=0;i<20;i++){
                  temp = fm;
                  fm = fz;
                  fz = fz + temp;
                  sum += fz/fm;
                  //System.out.println(sum);
            }
            System.out.println(sum);
      }
}




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论