首页 > 编程语言 >Javase-5.逻辑控制的习题

Javase-5.逻辑控制的习题

时间:2024-07-15 21:56:28浏览次数:14  
标签:逻辑 Scanner int 18 System number2 习题 Javase out

1. 根据年龄 , 来打印出当前年龄的人是少年 ( 低于 18), 青年 (19-28), 中年 (29-55), 老年 (56 以上 )

Scanner sc = new Scanner(System.in);
int age = sc.nextInt();

if(age > 0 && age <= 18) {
    System.out.println("是少年");
} else if(age >= 19 && age <= 28) {
    System.out.println("是青年");
} else if(age >= 29 && age <= 55){
    System.out.println("是中年");
} else {
    System.out.println("是老年");
}
2. 打印 1 - 100 之间所有的素数
for (int j = 1; j <= 100; j++) {
    int i = 2;
    for (; i < Math.sqrt(j); i++) {
        if(j % i == 0) {
            break;
        }
    }if(i > Math.sqrt(j)) {
        System.out.println(j +"是素数");
    }
}
3. 输出 1000 - 2000 之间所有的闰年
Scanner scan = new Scanner(System.in);
int year = scan.nextInt();
int count = 0;
for (int year = 1000; year <= 2000; year++) {
    if (year % 100 == 0) {
        if (year % 400 == 0) {
            System.out.println(year + "is 闰年");
            }
        }else {
        if (year % 4 == 0) {
            System.out.println(year + "is 闰年");
        }
    }
}
4.输出乘法口诀表
//1*1 = 1
//2*1 = 2 2*2 = 4
//3*1 = 3 3*2 = 6 3*3 = 9
//...
//不难发现第一行有一个表达式,第二行有两个,第三行有三个...
//所以内循环从1到i
for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.printf("%d*%d = %2d ",i,j,i*j);
    }
    System.out.printf("\n");
}
5.求两个正整数的最大公约数 法一:
Scanner scan = new Scanner(System.in);
int number1 = scan.nextInt();
int number2 = scan.nextInt();
int min = number1 > number2 ? number2 : number1;
while(true) {
    if(number1 % min == 0 && number2 % min == 0) {
        break;
    }
    min--;
}
System.out.println(min + "is 最大公约数");

上述解法是比较朴素的解法 -- 硬解,拿到两个数中的较小数,再利用循环,找到能同时被两个数整除的最大数。

法二:辗转相除法:假设有两个数a和b,a % b = c; 将b赋值给a,即a = b;将c赋值给b,即b = c;继续 进行a%b(a = b, b = c),直到a % b为零,此时b即为a和b的最大公约数。

以24与18为例,24和18的最大公约数为6,

  计算过程:    24 % 18 = 6, 18 % 6 = 0,6为最大公因数,

 那么如果一开始是 18 % 24有没有影响呢? 我们来看, 18 % 24 = 18; 24赋值给%左边的变量,18赋值给%右边的变量,又变成 24 % 18了,所以没有影响.可能讲得有点抽象,直接看代码.

Scanner scan = new Scanner(System.in);
int number1 = scan.nextInt();
int number2 = scan.nextInt();
int tmp = number1 % number2;//假设为24 % 18
while(tmp != 0) {
    number1 = number2;//number1 = 18
    number2 = tmp;//number2 = 6
    tmp = number1 % number2;//tmp = 18 % 6
}
System.out.println(number2 + "is 最大公约数");
6.求出 0 ~ 999 之间的所有 “ 水仙花数 ” 并输出。 (“ 水仙花数 ” 是指一个三位数,其各位数字的立方和确好等于该数 本身,如: 153 = 1^3 + 5^3 + 3^3 ,则 153 是一个 “ 水仙花数 ” 。 ) 分析:1.想要求出3位的水仙花数的先拿到它的个位数,十位数和百位数         2.利用 Math.pow(number,3);//可以得到nember的三次方.
for (int i = 0; i <= 999; i++) {
    int count = 0;
    //假设i = 123
    int tmp = i;
    while(i != 0) {
        count++;
        i /= 10;
    }
    i = tmp;
    int sum = 0;
    while(tmp != 0) {
        sum += Math.pow(tmp % 10,count);
        tmp /= 10;
    }
    if(sum == i) {
        System.out.println(i + "is 水仙花数");
    }
}

7.打印 X 图形

只需注意到当i == j或者i+j = n-1时为 * ,那么这道题就好写了

Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()) {
    int a = sc.nextInt();
    for (int i = 0; i < a; i++) {
        for (int j = 0; j < a; j++) {
            if(i == j || i + j == a-1) {
                System.out.print("*");
            }else{
                System.out.print(" ");
            }
        }
        System.out.println();
    }
}

8.编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序

int count = 3;
Scanner sc = new Scanner(System.in);
while(count != 0) {
    System.out.println("请输入密码:");
    String password = sc.nextLine();
    if(password.equals("123456")) {
        System.out.println("登录成功!");
        break;
    }else{
        System.out.println("密码错误,你还有"+ (count-1) +"次机会");
        count--;
    }
}

9.获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列

int n = 7;//0000 0000 0000 0000 0000 0000 0000 0111
                                               31...4 3 2 1
   第32位为符号位不用管,只算到31,第一位(奇数位)上的数字:1,第二位(偶数位)上的数字:1,第三位(奇数位)...第三十一位(奇数位)上的数字:0.
从第一位开始每+两位都是奇数位,同里从第二位开始每+2都是偶数位.
所以for(int i = 1;i <= 30,i += 2)表示奇数位上的数字,为了打印出来的顺序与0000 0000 0000 0000 0000 0000 0000 0111一致,故将for(int i = 1;i <= 30,i += 2)倒过来写:for(int i = 30;i >= 0; i -= 2),偶数位也同理

for (int i = 30; i >= 0; i -= 2) {
    System.out.print( ((n >> i) & 1) + " ");
}//右移>>: 最右位去掉,正数在最左补0,负数补1.&:如果两个二进制位都是 1,则结果为 1,否则结果为 0.
System.out.println();
for (int i = 31; i >= 1; i -= 2) {
    System.out.print( ((n >> i) & 1) + " ");
}

以上所有练习的答案或许有不足的地方,还望各位多多包涵!

标签:逻辑,Scanner,int,18,System,number2,习题,Javase,out
From: https://blog.csdn.net/2302_81886858/article/details/140448644

相关文章

  • Linux的文件查找吉计划任务练习题
    #练习1 使用ls查看/etc/目录下的所有文件信息[root@gym~]#ls/etc/#练习2 使用ls查看/etc/⽬录下名包含“a”字⺟的⽂件或者⽬录信息[root@gym~]#ls/etc/|grep'a'#练习3 使用ls查看/etc/目录下以“.conf”结尾的文件信息[root@gym~]#ls/etc/*.conf#......
  • 微信小游戏 彩色试管 倒水游戏 逻辑 (二)
     最近开始研究微信小游戏,有兴趣的可以关注一下公众号,记录一些心路历程和源代码。定义一个Waterclass1.**定义接口和枚举**:  -`WaterInfo`接口定义了水的颜色、高度等信息。  -`PourAction`枚举定义了水的倒动状态,包括无动作、加水、倒水。2.**类`Wa......
  • javaSE学习 day04
    目录1.数组1.1数组是什么1.2静态数组1.2.1数组的格式1.2.2数组的访问1.2.3获取数组的长度1.3动态数组1.3.1动态数组是什么1.3.2动态数组的格式 1.3.3默认值规则1.4数组的遍历1.4.1什么是数组的遍历1.4.2为什么要遍历1.4.3遍历的格式1.5综合案例1.5.1计算班级......
  • 【人工智能】逻辑回归(二)
    目录一、读取ex2data1.txt中的数据,建立样本集,使用逻辑回归算法得到参数估计值。并在坐标图中画出分界图。1.读取数据2.画散点图3.定义logistic函数4.定义计算逻辑回归损失函数(cost)的函数5.定义批量的梯度下降函数6.找逻辑回归模型的决策边界7.画图8.模型准确......
  • JavaSE项目--图书管理系统代码
    结构代码展示Book类代码packagecom.xszx.beans;//实体类publicclassBook{privateintid;privateStringname;privateintbsum;publicBook(){}publicBook(intid,Stringname,intbsum){this.id=id;......
  • python中逻辑运算符and 和 or 的优先级问题。
    python的说明文档以及教材上、网上都说明and的优先级大于or。但我经过实际操作,发现其中规律似乎并不简单,下面我列举一些代码,来提出我的疑问:有时候or的优先级高,有时候and优先级高,并且并不是从左至右运算。首先说明python当中的and和or运算逻辑如下(这里必须懂):    1......
  • 【码题集】习题
    目录史莱姆融合松鼠接松果 新月轩就餐 史莱姆融合根据题意就是一道集合合并的题,所以要用并查集,不过最后我们要输出整个序列,所以要在合并的时候维护一个链表,以便最终合并成一个大集合的时候,输出整个链表就是答案。不过这里有一点要注意,就是我们在更新链表的时候是把......
  • CmsEasy7.6支付逻辑漏洞
    最近在学习支付逻辑漏洞相关的知识,利用一些测试思路来复现一下靶场,顺便做一下笔记,不过这个靶场比较老了,供新手学习练练手靶场源码下载链接:https://ftp.cmseasy.cn/CmsEasy7.x/CmsEasy_7.6.3.2_UTF-8_20200422.zip靶场部署自行百度,用我大学老师的一句话————要学会面向百度,要......
  • 【人工智能】逻辑回归(一)
    目录一、在JupyterNotebook中新建Python运行环境,以单元格为单位运行代码,解释每行代码的含义,分析运行结果。1.测试运行代码版.ipynb1.1导入数据集1.2初始化列表1.3可视化1.4对数据进行处理1.5定义sigmoid函数1.6使用逻辑回归的损失函数1.7定义梯度下降函数g......
  • 当代政治制度(练习题)
    当代政治制度(练习题)***Rz整理版仅供参考***以归侨华侨眷中的中上层人士为主组成的民主党派是(D.中国致公党)A.中国民主建国会B.中国民主促进会C.九三学社D.中国致公党中国共产党同各民主党派合作的政治基础是(B.四项基本原则)A.十六字方针B.四项基本......