Java循环高级练习题

1.使用Java实现输出如下图形。

  

(1) 

public class Demo14 {
    /*输出各种图形
    * */
    public static void main(String[] args) {

            for(int i=1;i<=3;i++) {
                //输出空格
                for(int j=1;j<=3-i;j++) {
                    System.out.print(" ");
                }
                //输出*号
                for(int k=1;k<=2*i-1;k++) {
                    System.out.print("*");
                }
                System.out.println();
            }
        }


}

 

(2) 

public class Demo15 {
    public static void main(String[] args) {
                int n=6;
                int m=6;
                for(int i=1;i<=n;i++) {
                    for(int s=1;s<=6-i;s++) {
                        System.out.print(" ");
                    }
                    for(int j=1;j<=m;j++) {
                        System.out.print("*");
                    }
                    System.out.println();
                    m=m+2;
                }
           for(int i=1;i<n;i++) {
            for(int s=1;s<=i;s++) {
                System.out.print(" ");
            }
            for(int j=1;j<=m-4;j++) {
                System.out.print("*");
            }
            System.out.println();
            m=m-2;
        }
            }

        }

(3

public class Demo16 {
    /*
    * */
    public static void main(String[] args) {
        int m=9;
        for (int i = 1; i <=m ; i++) {
            for (int j = 1; j <=m-i ; j++) {
                System.out.print(" ");
            }
            for (int z = 1; z <=2*i-1; z++) {
               if (z==1 || z==2*i-1){
                   System.out.print("*");
               }
               else {
                   System.out.print(" ");
               }
            }
            System.out.println();
        }
        for (int a = 1; a <=m-1 ; a++) {
            for (int i = 1; i <=a ; i++) {
                System.out.print(" ");
            }
            for (int i =1;i<=(m-a)*2-1;i++) {
                if(i==1||i==(m-a)*2-1){
                    System.out.print("*");
                }
                else {
                    System.out.print(" ");
                }

            }
            System.out.println();
        }
    }
}

(4) 

public class Demo17 {
    /*
    *
    * */
    public static void main(String[] args) {
        int m=8;
        System.out.println("****************");
        for (int i = 1; i <=7; i++) {
            for (int j =8-i; j>0; j--) {
                System.out.print("*");
            }
            for (int k = 2*i-1; k >0; k--) {
                System.out.print(" ");
            }
            //输出每一行后面的“*”
            for (int z = 8-i; z >0;z--) {
                System.out.print("*");
            }
            System.out.println("");
        }
    }
}

2.随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么 

import java.util.Random;

public class Demo12 {
    /*随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么
    * */
    public static void main(String[] args) {
        Random random = new Random();
        int anInt = random.nextInt(100000);
        int count=0;
        while (anInt>0){
            int x=anInt%10;
            System.out.println(x);
            anInt=anInt/10;
            count++;
        }
        System.out.println("一共"+count+"位");
    }
}

 3.实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机选择1个组成一注彩票。可以选择买多注。

import java.util.Random;
import java.util.Scanner;

public class Demo18 {
    /*
    * 实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,
    * 从15个篮球中随机选择1个组成一注彩票。可以选择买多注。
    * */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        System.out.println("请输入需要买几注");
        int anInt = scanner.nextInt();
        for (int i = 0; i < anInt; i++) {
//            蓝色球的号码
            int bule=random.nextInt(15)+1;
            int red1=random.nextInt(33)+1;
            int red2=0;
            int red3=0;
            int red4=0;
            int red5=0;
            int red6=0;
            while (true) {
                int redBall = (int) (Math.random() * 33) + 1;
                if (red6!= 0) {// redBall6不等于0说明redBall6已经获得值了
                    break;// redBall6获得值了就退出循环
                }
                if (redBall != red1 && red2== 0) {
                    red2 = redBall;
                } else if (redBall != red1 && redBall != red2
                        && red3==0) {
                    red3 = redBall;
                } else if (redBall != red1 && redBall != red2
                        && redBall != red3 && red4 == 0) {
                    red4 = redBall;
                } else if (redBall != red1 && redBall != red2
                        && redBall != red4 && redBall !=red3
                        && red5== 0) {
                    red5= redBall;
                } else if (redBall != red1 && redBall != red2
                        && redBall != red4 && redBall !=red3 && redBall!=red5
                        && red6==0) {
                   red6= redBall;
                }
            }
            System.out.println(red1 + " " + red2 + " " + red3+ " "
                    + red4 + " " + red5 + " " + red6 + "---"
                    + bule);
        }


    }
}

4.输出斐波那契数列数列的前20项。

public class Demo20 {
    /*
    * 输出斐波那契数列数列的前20项
    * */
    public static void main(String[] args) {
        int first = 1;
        int second = 1;
        int next=0;
        System.out.print("1 1 ");
        for (int j =3; j <21; j++) {
            next=second+first;
            first=second;
            second=next;
            System.out.print(next+" ");
        }
    }
}

5.输出一个整数的二进制数、八进制数、十六进制数。

import java.util.Scanner;
public class Demo21 {
    /*
    *
    * 输出一个整数的二进制数、八进制数、十六进制数。
    * */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入一个整数");
        int anInt = scanner.nextInt();
        int a=anInt;
        int b=anInt;
        int c=anInt;
//        转化为二进制

        String res = "";
        while(a!= 0){
            res = a% 2 + res;
            a= a/ 2;
        }
        System.out.println("二进制为:"+res);

        //    转化为8进制
        String re = "";
        while(b!= 0){
            re= b% 8 + re;
            b= b/ 8;
        }
        System.out.println("八进制为:"+re);

        //    转化为8进制
        String resw = "";
        while(c!= 0){
            resw= c%16 + resw;
            c= c/16;
        }
        System.out.println("十六进制为:"+resw);
    }

}

6.随机产生一个字符,判断:如果为大写字母则输出“大写字母”;如果为小写字母则输出“小写字母”;否则怎输出“其他字符”。

public class Demo23 {
    /*
    * 随机产生一个字符,判断:如果为大写字母则输出“大写字母”;
    * 如果为小写字母则输出“小写字母”;否则怎输出“其他字符”*/
    public static void main(String[] args) {
        String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        char c;
        int index=(int)(Math.random()*62);
        c=str.charAt(index);
        System.out.println(c);
        int list=0;
        for (char i = 'A'; i <='Z' ; i++) {
            if(i==c){
                System.out.println("大写字母");
                list=1;
            }
        }
        for (char l = 'a';l<='z'; l++) {
            if(c==l){
                System.out.println("小写字母");
                list=1;
            }
        }
        if(list==0){
            System.out.println("其它字符");
        }
    }
}

7.李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)

public class Demo28 {
    /*
    * :李白无事街上走,提壶去买酒。
    * 遇店加一倍,见花喝一斗,五遇花和店,
    * 喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)*/

    public static void main(String[] args) {
         int i;
         float x=0;
        for (i = 5;  i>0 ; i--) {
            x=x+1;
            x=x/2;
        }
        System.out.println("李白壶中原有"+x+"斗酒");
    }
}

8.生成13位条形码,Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码。

例如:690123456789

计算其校验码的过程为:

@前十二位的奇数位和6+0+2+4+6+8=26

@前十二位的偶数位和9+1+3+5+7+9=34

@将奇数和与偶数和的三倍相加26+34*3=128

@取结果的个位数:128的个位数为8

@用10减去这个个位数10-8=2

所以校验码为2

(注:如果取结果的个位数为0,那么校验码不是为10(10-0=10),而是0)

实现方法ean13()计算验证码,输入12位条码,返回带验证码的条码。

例:输入:692223361219输出:6922233612192

import java.util.Scanner;
public class Demo29 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int odd=0;
        int even=0;
        long suzi=0L;
        for (int j =1; j <13 ; j++) {
            System.out.println("输入第"+j+"位数字");
            int num=scanner.nextInt();
            suzi=suzi*10L+num;
            if(num<0||num>=10){
                System.out.println("请输入0~10之间的数");
                j=j-1;
            }
            if (j % 2 == 0) {
              even=even+num;
            }
            else {
               odd=odd+num;
            }
        }
        System.out.println("偶数和:"+even);
        System.out.println("奇数和:"+odd);
        int zonghe=odd+even*3;
        int gewei=zonghe%10;

        int a=10-gewei;
        if(a==10){
            a=0;
        }

        long shuchu=suzi*10L+a;
        System.out.println("返回验证码的条码为:"+shuchu);
    }
}

9.设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?

public class Demo30 {
    /*
    * 设计Java程序,假设有50瓶饮料,
    * 喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
    * */
    public static void main(String[] args) {
        int count=50;
        int sum=50;
        int flag=1;
       while (flag==1){
           int duihuan=count/3;
           if(duihuan==0){
               flag=0;
               break;
           }
           sum=sum+duihuan;
           count=duihuan;
       }
        System.out.println("一共喝了"+sum+"瓶");
    }
}

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值