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("体重合格!");
}