A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【程序15】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
  
import  java.util.Scanner;
  
public class  Prog15{
  
    public static void main(String[] args){
  
        Scanner scan = new  Scanner(System.in).useDelimiter("\\D");
  
        System.out.print("请输入三个数:");
  
        int x = scan.nextInt();
  
        int y = scan.nextInt();
  
        int z = scan.nextInt();
  
        scan.close();
  
        System.out.println("排序结果:"+sort(x,y,z));
  
    }
  
    //比较两个数的大小
  
    private static String sort(int x,int y,int  z){
  
        String s = null;
  
        if(x>y){
  
            int t = x;
  
            x = y;
  
            y = t;
  
        }
  
        if(x>z){
  
            int t = x;
  
            x = z;
  
            z = t;
  
        }
  
        if(y>z){
  
            int t = z;
  
            z = y;
  
            y = t;
  
        }
  
        s = x+" "+y+" "+z;
  
        return s;
  
    }
  
}
  
【程序16】
题目:输出9*9口诀。
程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
  
public class Prog16{
  
    public static void main(String[] args){
  
        for(int i=1;i<10;i++){
  
            for(int j=1;j<i+1;j++)
  
                System.out.print(j+"*"+i+"="+(j*i)+"  ");
  
            System.out.println();
  
        }
  
    }
  
}
  
【程序17】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
程序分析:采取逆向思维的方法,从后往前推断。
  
public class  Prog17{
  
    public static void main(String[] args){
  
        int m = 1;
  
       for(int i=10;i>0;i--)
  
         m = 2*m + 2;
  
       System.out.println("小猴子共摘了"+m+"桃子");
  
    }
  
}
  
【程序18】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
  
import  java.util.ArrayList;
  
public class  Prog18{
  
    String a,b,c;//甲队成员
  
    public static void main(String[] args){
  
        String[] racer =  {"x","y","z"};//乙队成员
  
        ArrayList<Prog18> arrayList =  new ArrayList<Prog18>();
  
        for(int i=0;i<3;i++)
  
           for(int j=0;j<3;j++)
  
             for(int k=0;k<3;k++){
  
                 Prog18 prog18 = new  Prog18(racer,racer[j],racer[k]);
  
                 if(!prog18.a.equals(prog18.b)  && !prog18.a.equals(prog18.c) && !prog18.b.equals(prog18.c)  &&
  
                    !prog18.a.equals("x") &&  !prog18.c.equals("x") && !prog18.c.equals("z"))
  
                    arrayList.add(prog18);
  
             }
  
           for(Object obj:arrayList)
  
             System.out.println(obj);
  
    }
  
    //构造方法
  
    private Prog18(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;
  
    }
  
}
  
【程序19】
题目:打印出如下图案(菱形)
   *
   ***
******
********
******
  ***
   *
程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。
  
public class  Prog19{
  
    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();
  
        }
  
    }
  
}
  
【程序20】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
程序分析:请抓住分子与分母的变化规律。
  
public class  Prog20{
  
    public static void main(String[] args){
  
        double n1 = 1;
  
        double n2 = 1;
  
        double fraction = n1/n2;
  
        double Sn = 0;
  
        for(int i=0;i<20;i++){
  
           double t1 = n1;
  
           double t2 = n2;
  
           n1 = t1+t2;
  
           n2 = t1;
  
           fraction = n1/n2;
  
           Sn += fraction;
  
        }
  
        System.out.print(Sn);
  
    }
  
}
  

29 个回复

正序浏览
mark了,自己也做做看
回复 使用道具 举报
非常有趣~~
回复 使用道具 举报
来学习学习
回复 使用道具 举报
收藏慢慢看
回复 使用道具 举报
一城一世界 来自手机 中级黑马 2015-7-25 18:30:22
26#
感谢分享,很有帮助哦~
回复 使用道具 举报
菱形的能推算出来
回复 使用道具 举报
感谢分享
回复 使用道具 举报
Java基础里面还有很多东西啊  ,算法只是一小部分!!!
回复 使用道具 举报
学习了,很不错。。。
回复 使用道具 举报
谢谢分享  收藏了
回复 使用道具 举报
谢谢分享!
回复 使用道具 举报
{:3_50:}主要是if和for应用
回复 使用道具 举报
先看看,有会做的。
回复 使用道具 举报
收藏了 慢慢做
回复 使用道具 举报
这个我也会,呵呵
回复 使用道具 举报
谢谢分享!!!
回复 使用道具 举报
有几个也是刚学完,再看看就当复习一遍
回复 使用道具 举报
其实我只是想求较多的题目,不求答案,只求题目
回复 使用道具 举报
最近一直在敲,联系代码感
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马