Java2EE基础练习_chapter02流程控制


申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址
全文共计16851字,阅读大概需要10分钟
欢迎关注我的个人公众号:不懂开发的程序猿

题目01

假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入
一个两位数,然后按照下面的规则判定用户是否能赢。
1)如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。

package com.jerry.exer;

import java.util.Scanner;

/**
 * @author 金阳
 * @description
 * @create 2022-09-19 19:57
 */
public class Exer2 {
    public static void main(String[] args) {
        /*假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入
        一个两位数,然后按照下面的规则判定用户是否能赢。
        1)如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
        2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
        3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
        4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
        5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。*/
//        System.out.println(Math.random()*90+10);

        int random = (int) (Math.random() * 90 + 10);//一定可以产生一个随机的两位数,并且最小是10
        System.out.println("random=" + random);
        int randomShi = random / 10;
        System.out.println("randomShi=" + randomShi);
        int randomGe = random % 10;
        System.out.println("randomGe=" + randomGe);
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个两位数:");
        int input = scanner.nextInt();
        System.out.println("您输入的两位数为:" + input);
        int inputShi = input / 10;
        System.out.println("inputShi=" + inputShi);
        int inputGe = input % 10;
        System.out.println("inputGe=" + inputGe);
        if (random == input) {
            System.out.println("奖金10 000美元");
        }
        else if (inputShi == randomGe && inputGe == randomShi) {
            System.out.println("奖金 3 000美元");
        }
        else if (inputShi == randomShi || inputGe == randomGe) {
            System.out.println("奖金1 000美元");
        }
        else if (inputShi == randomGe || inputGe == randomShi) {
            System.out.println("奖金500美元");
        } else {
            System.out.println("彩票作废");
        }
    }
}

题目02

假如今天是周二,用户随机输入一个数num,判断过了num天以后是周几?

package com.jerry.exer;

import java.util.Scanner;

/**
 * @author 金阳
 * @description
 * @create 2022-09-19 20:19
 */
public class Exer3 {
    public static void main(String[] args) {
//        char x = 'x';
//        int i = 10;
//        System.out.println(true? x : i);//65+
//        System.out.println(true? 'x' : 10);//x

        //今天是周二,100天以后是周几?
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int num = scanner.nextInt();
        int var = num % 7;
        int today  = 2;
        int tomorrow = today + var;

        switch (tomorrow){
            case 1:
                System.out.println("今天是周一");
                break;
            case 2:
                System.out.println("今天是周2");
                break;
            case 3:
                System.out.println("今天是周3");
                break;
            case 4:
                System.out.println("今天是周4");
                break;
            case 5:
                System.out.println("今天是周5");
                break;
            case 6:
                System.out.println("今天是周6");
                break;
            case 7:
                System.out.println("今天是周7");
                break;
            default:
                System.out.println("今天是周一");

        }

    }

}

题目03

自增运算

package com.jerry.exer;

/**
 * @author 金阳
 * @description
 * @create 2022-09-19 20:44
 */
public class Exer4 {
    public static void main(String[] args) {
        int a = 23;
        int b = 12;
        System.out.println(a + "+" + b + "=" + (a + b));
        int sum = a + b;
        System.out.println(a + "+" + b + "=" + sum);

        int sub = a - b;
        //System.out.println(a + "-" + b + "=" + a-b);//错误,原因是a + "-" + b + "=" + a的结果是字符串,字符串不能进行减法
        System.out.println(a + "-" + b + "=" + (a - b));
        System.out.println(a + "-" + b + "=" + sub);

        int mul = a * b;
        System.out.println(a + "*" + b + "=" + a * b);
        System.out.println(a + "*" + b + "=" + mul);

        //整数相除,只保留整数部分
        int div = a / b;
        System.out.println(a + "/" + b + "=" + a / b);
        System.out.println(a + "/" + b + "=" + div);

        double d = (double) a / b;//先把a的类型进行转换,转换成double类型,然后再和b相除
        System.out.println(a + "/" + b + "=" + d);

        int yu = a % b;
        System.out.println(a + "%" + b + "=" + yu);

        System.out.println("------------------特殊的取模----------------------");
        System.out.println(5 % 2);//1
        System.out.println(-5 % -2);//-1
        System.out.println(-5 % 2);//-1
        System.out.println(5 % -2);//1

        System.out.println("------------------负号----------------------");
        int num1 = 12;
        int num2 = -num1;
        System.out.println("num2=" + num2);

        System.out.println("------------------自增----------------------");
        int i = 0;
        System.out.println("自增之前i=" + i);
        i++;
        System.out.println("自增第一次之后i=" + i);
        ++i;
        System.out.println("自增第二次之后i=" + i);
        int j = ++i;//把i自增1,然后结果赋值给j,或者说,先算++i,然后再赋值
        System.out.println("自增第三次之后i=" + i);
        System.out.println("j=" + j);
        int k = i++;//先算赋值,把i的值赋值给k,i原来是3,把3赋值给k,然后i在自增1,i变成4
        System.out.println("自增第四次之后i=" + i);
        System.out.println("k=" + k);

        //面试题:陷阱题
        i = i++;//先赋值,把i原来的值重新赋值给i,不变,然后i自增,但是这个自增后的值没有在放回变量i的位置
        System.out.println("自增第五次之后i=" + i);
    }
}

题目04

考查运算符的优先级

package com.jerry.exer;

/**
 * @author 金阳
 * @description
 * @create 2022-09-19 20:53
 */
public class Exer5 {
    //考查运算符的优先级
    public static void main(String[] args) {
        int x = 0, y = 1;
        if (++x == y-- & x++ == 1 || --y == 0)
            System.out.println("x=" + x + ",y=" + y);   //x = 2,y = 0;
        else
            System.out.println("y=" + y + ",x=" + x);
    }

}

题目05

如何求一个0~255范围内的整数的十六进制值,例如60的十六进制表示形式3C

package com.jerry.exer;

import java.util.Scanner;

/**
 * @author jerry_jy
 * @create 2022-09-20 9:21
 */
public class Exer6 {
    public static void main(String[] args) {
        //如何求一个0~255范围内的整数的十六进制值,例如60的十六进制表示形式3C
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个0~255之间的整数:");
        int num = scanner.nextInt();

        //方式一:自动实现
//        String hexString = Integer.toHexString(num).toUpperCase(Locale.ROOT);
//        System.out.println(num + " 的十六进制是:" + hexString);

        //方式二:手动实现
        int i = num / 16;
        int j = num % 16;
        char c = 0;
        if (j == 10) {
            c = 'A';
        } else if (j == 11) {
            c = 'B';
        } else if (j == 12) {
            c = 'C';
        } else if (j == 13) {
            c = 'D';
        } else if (j == 14) {
            c = 'E';
        } else if (j == 15) {
            c = 'F';
        }

        System.out.println(num + " 的十六进制是:" + i + c);
    }
}

题目06

运算符的判断

package com.jerry.exer;

/**
 * @author jerry_jy
 * @create 2022-09-20 9:24
 */
public class Exer7 {
    public static void main(String[] args) {
//        int a = 3, b = 8;
//
//        int c = (a > b) ? a++ : b++;
//        System.out.println("a=" + a + "\tb=" + b + "\tc=" + c);  //3,9,8
//
//        int d = (a > b) ? ++a : ++b;
//        System.out.println("a=" + a + "\tb=" + b + "\td=" + d);  //3,8,9
//
//        int e = (a < b) ? a++ : b++;
//        System.out.println("a=" + a + "\tb=" + b + "\te=" + e);  //4,8,3
//
//        int f = (a < b) ? ++a : ++b;
//        System.out.println("a=" + a + "\tb=" + b + "\tf=" + f);  //3,8,4

//        short s1 = 1; s1 = s1 + 1;有什么错?
//        short s1 = 1; s1 += 1;有什么错

        short s1 = 1;
        s1 = (short) (s1 + 1);
    }

}

题目07

从键盘分别输入年、月、日,判断这一天是当年的第几天

package com.jerry.exer;

import java.util.Scanner;

/**
 * @author jerry_jy
 * @create 2022-09-20 9:41
 */
public class Exer9 {
//    从键盘分别输入年、月、日,判断这一天是当年的第几天

    public static void main(String[] args) {

        Scanner scanner1 = new Scanner(System.in);
        System.out.println("请输入年:");
        int year = scanner1.nextInt();

        Scanner scanner2 = new Scanner(System.in);
        System.out.println("请输入月:");
        int month = scanner2.nextInt();

        Scanner scanner3 = new Scanner(System.in);
        System.out.println("请输入日:");
        int day = scanner3.nextInt();


        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
            switch (month) {
                case 1:
                    System.out.println("这一天是当年的第" + day + "天");
                    break;
                case 2:
                    System.out.println("这一天是当年的第" + (day + 31) + "天");
                    break;
                case 3:
                    System.out.println("这一天是当年的第" + (day + 31 + 28) + "天");
                    break;
                case 4:
                    System.out.println("这一天是当年的第" + (day + 31 + 28 + 31) + "天");
                    break;
                case 5:
                    System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30) + "天");
                    break;
                case 6:
                    System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31) + "天");
                    break;
                case 7:
                    System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30) + "天");
                    break;
                case 8:
                    System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30 + 31) + "天");
                    break;
                case 9:
                    System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31) + "天");
                    break;
                case 10:
                    System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30) + "天");
                    break;
                case 11:
                    System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31) + "天");
                    break;
                case 12:
                    System.out.println("这一天是当年的第" + (day + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30) + "天");
                    break;
            }
        }
    }
}

题目08

使用条件结构实现,如果用户名等于字符‘青’,密码等于数字‘123’,就输出“欢迎你,青”,否则就输出“对不起,你不是青”。

package com.jerry.exer;

import java.util.Scanner;

/**
 * @author jerry_jy
 * @create 2022-09-20 10:06
 */
public class Exer12 {
    //    使用条件结构实现,如果用户名等于字符‘青’,密码等于数字‘123’,就输出“欢迎你,青”,否则就输出“对不起,你不是青”。
    public static void main(String[] args) {
        Scanner scanner1 = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String s = scanner1.next();

        Scanner scanner2 = new Scanner(System.in);
        System.out.println("请输入密码:");
        String pwd = scanner1.next();

        String str1 = "青";

        if (s.contains(s) && pwd.equals("123")) {
            System.out.println("欢迎你,青");
        } else {
            System.out.println("对不起,你不是青");
        }

    }
}

题目09

        求ax2+bx+c=0方程的根。a,b,c分别为函数的参数,
    如果a≠0,那么:
    (1)当b2-4ac>0,则有两个解;
    (2)当b2-4ac=0,则有一个解;
    (3)当b2-4ac<0,则无解;
    如果a=0,b≠0,那么,
public class Exer13 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.println("一元二次方程:ax^2+bx+c=0");
        System.out.print("请输入参数a:");
        double a = input.nextDouble();

        System.out.print("请输入参数b:");
        double b = input.nextDouble();

        System.out.print("请输入参数c:");
        double c = input.nextDouble();

        if (a != 0) {
            double temp = b * b - 4 * a * c;
            if (temp > 0) {
                double x1 = (-b + Math.sqrt(temp)) / (2 * a);
                double x2 = (-b - Math.sqrt(temp)) / (2 * a);
                System.out.println("方程有2个根,分别是" + "x1=" + x1 + "x2=" + x2);
            }
            if (temp == 0) {
                double x = -b / (2 * a);
                System.out.println("方程有且仅有一个根:" + x);
            }
            if (temp < 0) {
                System.out.println("方程无解");
            }
        }
        if (a == 0 && b != 0) {
            double x = -c / b;
            System.out.println("方程的根为:" + x);
        }
    }
}

题目10

    赌数游戏
提供三个1-6的随机数,作为掷骰子得到的点数。如果各个点数相同,则为豹子。
如果三个骰子点数和,小于或等于9,则为“小”。
如果三个骰子点数和,大于9,则为“大”。
用户随机选择:押大、押小或者押豹子。通过判断,输出客户是否押正确。
 public static void main(String[] args) {
        int random1 = (int) (Math.random() * 7);
        int random2 = (int) (Math.random() * 7);
        int random3 = (int) (Math.random() * 7);
        System.out.println("三个1-6的随机数" + random1 + " , " + random2 + " , " + random3);

        String result = "";
        if (random1 == random2 && random2 == random3) {
            result = "豹子";
        } else if (random1 + random2 + random3 <= 9) {
            result = "小";
        } else {
            result = "大";
        }

        // 2、用户输入猜的结果
        Scanner input = new Scanner(System.in);
        System.out.print("请押宝,买定离手:(选择:大、小、豹子)");
        String guess = input.next();

        // 3、判断
        if (result.equals(guess)){
            System.out.println("猜对了!");
        }else {
            System.out.println("猜错了,再试一次吧~");
        }

    }

题目11

    编写一个程序,为一个给定的年份找出其对应的中国生肖。
 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个年份:");
        int year = scanner.nextInt();

        int var = year % 12;

        switch (var){
            case 0:
                System.out.println(year+" 年是猴年");
                break;
            case 1:
                System.out.println(year+" 年是鸡年");
                break;
            case 2:
                System.out.println(year+" 年是狗年");
                break;
            case 3:
                System.out.println(year+" 年是猪年");
                break;
            case 4:
                System.out.println(year+" 年是鼠年");
                break;
            case 5:
                System.out.println(year+" 年是牛年");
                break;
            case 6:
                System.out.println(year+" 年是虎年");
                break;
            case 7:
                System.out.println(year+" 年是兔年");
                break;
            case 8:
                System.out.println(year+" 年是龙年");
                break;
            case 9:
                System.out.println(year+" 年是蛇年");
                break;
            case 10:
                System.out.println(year+" 年是马年");
                break;
            case 11:
                System.out.println(year+" 年是羊年");
                break;
        }
    }

题目12

执行如下代码后,c的值是多少?

        int a = 0;
        int c = 0;
        do {
            --c;
            a = a - 1;
        } while (a >= 0);
        System.out.println("c = " + c);

题目13

以下代码的运行结果?

        int i=10;
        while(i>0){
            i = i +1;
            if(i==10){
                break;
            }
        }
        System.out.println("i=" + i);

题目14

    1)输入长和宽,输出长方形,如:输入4和3, 将输出如下图形
    ####
    ####
    ####
        Scanner scanner1 = new Scanner(System.in);
        System.out.println("请输入长方形的长:");
        int a = scanner1.nextInt();

        Scanner scanner2 = new Scanner(System.in);
        System.out.println("请输入长方形的宽:");
        int b = scanner2.nextInt();

        for (int i = 1; i <= b; i++) {
            for (int j = 1; j <= a; j++) {
                System.out.print("#");
            }
            System.out.println();
        }
    }

题目15

2)输入高度,输出直角三角形。如:输入4, 将输出如下图形
#
##
###
####
        Scanner scanner1 = new Scanner(System.in);
        System.out.println("请输入三角形的高度:");
        int n = scanner1.nextInt();

        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n - i + 1; j++) {
                System.out.print("#");
            }
            System.out.println();
        }

题目16

打印九九乘法表

        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "*" + i + "=" + (i * j) + "\t");
            }
            System.out.println();
        }

题目17

3000米长的绳子,每天减一半。问多少天这个绳子会小于5米?不考虑小数

        int day = 0;
        for (int length = 3000; length >= 5; day++) {
            length /= 2;
        }
        System.out.println(day++);

题目18

打印1-100之间非13的倍数,使用continue语句

        for (int i = 1; i <=100 ; i++) {
            if (i%13!=0){
                System.out.println(i);
            }
        }

题目19

用循环控制语句打印输出:1+3+5+…+99=?的结果

        int sum = 0;
        for (int i = 1; i < 100; i++) {
            if (i % 2 != 0) {
                sum += i;
            }
        }
        System.out.println(sum);

题目20

下面的代码输出结果?

        int i = 0, j = 5;
        tp:
        for (; ; ) {
            i++;
            for (; ; ) {
                if (i > j--)
                    break tp;
            }
        }
        System.out.println("i = " + i + ", j = " + j);//1 -1

题目21

输出从1到100之间所有不能被3整除的数;并输出这些整数的和

        int sum =0;
        for (int i = 1; i <=100 ; i++) {
            if (i%3!=0){
                System.out.println(i);
                sum+=i;
            }
        }
        System.out.println(sum);

题目22

猜数字游戏
随机生成一个100以内的数,猜数字游戏:
从键盘输入数,如果大了提示,大了,如果小了,提示小了,如果对了,就不再猜了,并统计一共猜了多少次?

        int random = (int) (Math.random() * 100);
        System.out.println("生成的随机数是:" + random);

        int i = 1;
        for (; ; i++) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请从键盘上输入一个100以内的数:");
            int input = scanner.nextInt();
            if (input > random) {
                System.out.println("大了");
//                break;
            }
            if (input < random) {
                System.out.println("小了");
//                break;
            }
            if (input == random) {
                System.out.println("猜对了");
                break;
            }
        }
        System.out.println("一共猜了" + i + "次");

题目23

打印1-100之间数,其中3、5、7的倍数不打印(continue)

        for (int i = 1; i <= 100; i++) {
            if (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) {
                System.out.println(i);
            }
        }

题目24

一个数如果恰好等于它的因子之和,这个数就称为"完数"。(因子:除去这个数本身的约数)
例如6=1+2+3.编程 找出1000以内的所有完数

        System.out.println("1-1000之间的完数有:");
        for (int i = 1; i <=1000 ; i++) {
            int sum =0;
            for (int j = 1; j<i-1;j++){
                if (i%j==0){
                    sum+=j;
                }
            }
            if (sum == i){
                System.out.println(i);
            }
        }

题目25

输入两个正整数m和n,求其最大公约数和最小公倍数

        System.out.println("输入两个正整数m和n:");
        Scanner scanner1 = new Scanner(System.in);
        int m = scanner1.nextInt();

        Scanner scanner2 = new Scanner(System.in);
        int n = scanner1.nextInt();

        int max = (m>n)?m : n;
        int min = (m<n)?m : n;

        //最大公约数
        for(int i=min;i<=max;i++){
            if (m%i==0&&n%i==0){
                System.out.println("最大公约数"+i);
                break;
            }
        }

        // 最小公倍数
        for (int i=max;i<=max*min;i++){
            if (i%m==0&&i%n==0){
                System.out.println("最小公倍数"+i);
                break;
            }
        }

题目26

根据指定月份,打印该月份所属的季节

        System.out.println("请输入一个1~12之间的整数:");
        Scanner scanner = new Scanner(System.in);
        int month = scanner.nextInt();
        if (month == 1 || month == 2 || month == 3){
            System.out.println("春");
        }
        if (month == 4 || month == 5 || month == 6){
            System.out.println("夏");
        }
        if (month == 7 || month == 8 || month == 9){
            System.out.println("秋");
        }
        if (month == 10 || month == 11 || month == 12){
            System.out.println("冬");
        }

题目27

    打印自然数的个数
    1)打印1~100之间 6的倍数的个数
        int flag = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 6 == 0) {
                flag++;
                System.out.println(i);
            }
        }
        System.out.println("flag=" + flag);
    2)求出1~100之间,既是3又是7的倍数的自然数出现的次数?
        int flag = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 3 == 0 && i % 7 == 0) {
                flag++;
                System.out.println(i);
            }
        }
        System.out.println("flag=" + flag);

题目28

求调和级数中从第多少项开始值大于10
调和级数的第n项形式为:1+1/2+1/3+…+1/n

        double sum = 0.0;
        int i = 1;
        while (true) {
            sum += 1.0 / i;
            if (sum > 10) {
                break;
            }
            i++;
        }
        System.out.println(i);

题目29

    打印如下的图形:三角形

       *
       * * *
       * * * * *
       * * * * * * *
       * * * * *
       * * *
       *
        for (int i = 1; i <= 7; i++) {
            if (i <= 4) {
                for (int j = 1; j <= 2 * i - 1; j++) {
                    System.out.print("* ");
                }
                System.out.println();
            }
            if (i > 4) {
                for (int j = 1; j <= 15 - 2 * i; j++) {
                    System.out.print("* ");
                }
                System.out.println();
            }
        }

题目30

    编写程序,打印100-200之间的质数
        for (int i = 100; i <= 200; i++) {
            for (int j = 2; j < i; j++) {
                if (i % j == 0) {
                    break;
                } else {
                    System.out.println(i);
                    break;
                }
            }
        }

题目31

输出所有的水仙花数
所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。
例如: 153 = 111 + 333 + 555

        for (int i = 100; i < 1000; i++) {
            int bai = i / 100;
            int shi = (i - bai * 100) / 10;
            int ge = i - bai * 100 - shi * 10;
            if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge) {
                System.out.println("i=" + i);
            }
        }

题目32

山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
提示:
(1) 用整型变量water表示水缸里的水“int water = 15;”。
(2) 用整型变量l表示小和尚下山挑水的次数“int l = 0;”。
(3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。
(4) 套用while循环(或do-while循环)写出代码。

        int water = 15;
        int count = 0;
        while (water < 50) {
            water += 5;
            count++;
        }
        System.out.println("小和尚要挑" + count + "次水才可以把水缸挑满");

题目33

生成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)
实现上述代码的功能,计算验证码,输入12位条码,返回带验证码的条码。
例:输入:692223361219输出:6922233612192

        System.out.println("请输入一个0~9之间的12位的数:");
        Scanner scanner = new Scanner(System.in);
        Long num = scanner.nextLong();

        Long shiEr = num / 100000000000L;
        Long shiYi = (num - shiEr * 100000000000L) / 10000000000L;
        Long shi = (num - shiEr * 100000000000L - shiYi * 10000000000L) / 1000000000L;
        Long jiu = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L) / 100000000L;
        Long ba = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L) / 10000000L;
        Long qi = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L) / 1000000L;
        Long liu = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L) / 100000L;
        Long wu = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L - liu * 100000L) / 10000L;
        Long si = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L - liu * 100000L - wu * 10000L) / 1000L;
        Long san = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L - liu * 100000L - wu * 10000L - si * 1000L) / 100L;
        Long er = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L - liu * 100000L - wu * 10000L - si * 1000L - san * 100L) / 10L;
        Long yi = (num - shiEr * 100000000000L - shiYi * 10000000000L - shi * 1000000000L - jiu * 100000000L - ba * 10000000L - qi * 1000000L - liu * 100000L - wu * 10000L - si * 1000L - san * 100L - er * 10L) / 1L;

        Long odds = shiEr + shi + ba + liu + si + er;
        Long even = shiYi + jiu + qi + wu + san + yi;
        Long sum = odds + even * 3;
        Long code = 0L;
        if (sum < 100) {
            Long ge = sum % 10;
            if (ge == 0) {
                code = 0L;
            } else {
                code = 10 - ge;
            }
        }

        if (sum < 1000) {
            Long ge = sum % 100;
            if (ge == 0) {
                code = 0L;
            } else {
                code = 10 - ge;
            }
        }
        System.out.println("生成13位条形码: " + num + code);

题目34

实现判断一个4位整数,统计出此整数里面包含多少个偶数,多少个奇数的功能

        System.out.println("请输入一个4位的整数:");
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();

        int flag = 0;
        for (int i = 1; i <= num; i++) {
            if (i % 2 == 0) {
                flag++;
            }
        }
        System.out.println("此整数里面包含" + flag + "个偶数");
        int flag1 = 0;
        for (int i = 1; i <= num; i++) {
            if (i % 2 != 0) {
                flag1++;
            }
        }
        System.out.println("此整数里面包含" + flag1 + "个奇数");

题目35

开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者体重是否合适。

        System.out.println("请输入您的身高:");
        Scanner scanner1 = new Scanner(System.in);
        double inputHeight = scanner1.nextDouble();
        System.out.println("您的身高为:" + inputHeight + " cm");

        System.out.println("请输入您的体重:");
        Scanner scanner2 = new Scanner(System.in);
        double inputWeight = scanner2.nextDouble();
        System.out.println("您的体重为:" + inputWeight + " 斤");

        double varWight = (inputHeight - 108) * 2;
        System.out.println("计算出来的理想体重在: " + (varWight - 10.0) + " 斤到 " + (varWight + 10.0) + " 斤之间");

        if (inputWeight < varWight - 10.0 || inputWeight > varWight + 10.0) {
            System.out.println("体重不合格!");
        } else {
            System.out.println("体重合格!");
        }
### 回答1: Java EE API 中英文对照版: 1. Servlet API - Servlet 应用程序接口 2. JSP API - JSP 应用程序接口 3. EJB API - EJB 应用程序接口 4. JMS API - JMS 应用程序接口 5. JTA API - JTA 应用程序接口 6. JPA API - JPA 应用程序接口 7. JSF API - JSF 应用程序接口 8. JAX-WS API - JAX-WS 应用程序接口 9. JAX-RS API - JAX-RS 应用程序接口 10. JavaMail API - JavaMail 应用程序接口 11. JMX API - JMX 应用程序接口 12. JDBC API - JDBC 应用程序接口 13. JNDI API - JNDI 应用程序接口 14. JavaBeans API - JavaBeans 应用程序接口 15. Java Security API - Java 安全应用程序接口 16. Java Transaction API - Java 事务应用程序接口 17. Java Authentication and Authorization Service API - Java 认证和授权服务应用程序接口 18. Java API for XML Processing - Java XML 处理应用程序接口 19. Java API for XML Web Services - Java XML Web 服务应用程序接口 20. Java API for RESTful Web Services - Java RESTful Web 服务应用程序接口 ### 回答2: Java EE API中英文对照版 1. Servlet API Servlet API是为Java编写的Web应用程序提供服务的一种规范。它定义并描述了servlet类所需的编程接口,包括HTTP请和响应API,以及JSP的启动和关闭,以帮助开发人员在Java编程中构建Web应用程序。 2. JavaServer Pages (JSP) API JavaServer Pages (JSP) API是Java编写Web应用程序的一个规范。JSP是一种动态Web页,允许开发人员将Java代码嵌入到HTML中以生成动态内容。该API提供了许多与JSP相关的接口,包括JSP的生命周期,页面请和响应API等等。 3. Enterprise JavaBeans (EJB) API Enterprise JavaBeans (EJB) API是Java编写分布式应用程序的一种规范。它定义了一组接口,可用于创建和管理Java类,这些类充当企业级组件,例如消息队列,数据库连接池等。 4. Java Persistence API (JPA) Java Persistence API (JPA)是Java编写对象关系的规范。它提供了一组接口,开发人员可以使用这些接口访问和操作数据库中的对象。JPA是许多ORM框架的基础。 5. Java Message Service (JMS) API Java Message Service (JMS) API是Java编写分布式应用程序的一种规范。它定义了一组接口,可用于在应用程序之间发送异步消息。JMS为开发人员提供了一种可靠的机制来确保消息被传输和处理。 6. JavaMail API JavaMail API是Java编写电子邮件服务的框架。它定义了一组接口,可用于创建和管理电子邮件,包括电子邮件消息的创建,发送和接收。 7. Java Naming and Directory Interface (JNDI) API Java Naming and Directory Interface (JNDI) API是Java编写分布式应用程序的一种规范。它定义了一组接口,可用于访问和管理命名和目录服务,例如LDAP服务器。 8. Java Transaction API (JTA) Java Transaction API (JTA)是Java编写分布式应用程序的一种规范。它定义了一组接口,可用于协调分布式事务。它允许多个事务参与者协同工作,以确保所有事务完成或回滚。 总之,Java EE API包含了很多重要的接口和协议,这些接口和协议使Java编写Web应用程序和分布式应用程序变得更加容易和灵活。通过Java EE API,开发人员可以集中精力编写应用程序的业务逻辑,而不必担心底层实现的细节。 ### 回答3: Java EE (Java Platform, Enterprise Edition) 是一种企业级的 Java 开发平台,它的主要目的是为企业应用程序开发提供一种标准化的、基于组件模型的方法,使得这些应用程序可以在不同的企业级环境中部署和运行。Java EE 平台包含了一系列的规范、API 和技术,这些规范、API 和技术都是为了满足企业级应用程序开发过程中的各种需而设计的。Java EE 平台分成三层(Web 层、业务逻辑层和持久层),每一层都有一系列的规范和 API,这些规范和 API 可以和其他 Java 技术结合使用,来构建高效、灵活和可可维护的企业级应用程序。 下面是 Java EE 平台中常见的规范和对应的 API 的中英文对照: - Servlet:Java Servlet API (Java Servlet API) - JSP:JavaServer Pages (JavaServer Pages) - EJB:Enterprise JavaBeans (企业组件) - JPA:Java Persistence API (Java 持久化 API) - JTA:Java Transaction API (Java 事务 API) - JMS:Java Message Service (Java 消息服务) - JNDI:Java Naming and Directory Interface (Java 命名和目录接口) - JAX-RS:Java API for RESTful Web Services (用于 RESTful Web 服务的 Java API) - JAX-WS:Java API for XML Web Services (用于 XML Web 服务的 Java API) - JSF:JavaServer Faces (Java 服务器面向对象) - CDI:Contexts and Dependency Injection (上下文和依赖注入) - JSON:Java API for JSON Processing(Java JSON 处理 API) - WebSocket:Java API for WebSocket (Java WebSocket API) - BatchJava Batch Processing API (Java 批处理 API) - JMX:Java Management Extensions (Java 管理扩展) Java EE 平台中,还包含了一些技术和协议,例如 XML、SOAP、WSDL、XML Schema、Java Connector Architecture、Java Authentication and Authorization Service(JAAS)等等。Java EE 平台不仅提供了必要的 API,还提供了一个容器,如 Tomcat、JBoss、WebSphere、WebLogic、GlassFish 等,可以在容器中部署并运行 Java EE 应用程序。通过使用 Java EE 平台,开发者可以很容易地构建出高效、可扩展、易维护的企业级应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不懂开发的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值