首页 > 编程语言 >Java运算符 二进制计算 素数问题 九九乘法表 月份问题 分解质因数 完全数问题 天数计算 图形输出

Java运算符 二进制计算 素数问题 九九乘法表 月份问题 分解质因数 完全数问题 天数计算 图形输出

时间:2024-06-03 09:29:59浏览次数:22  
标签:case 九九乘法 Java int System 运算符 println public out

1.代码观察

int a = 6--;
System.out.println(a);

在Java中,后置递减运算符 -- 只能在整型(int)和长整型(long)变量上使用,而且必须将 -- 放在变量值的后面。因此,6-- 是非法的,Java编译器会报错。

正确代码如下

int a = 6;
a--;
System.out.println(a);

输出结果为5

2.代码分析

System.out.println(5&9);
//0000 0101
//0000 1001
//0000 0001
结果为1
System.out.println(5|9);
//0000 0101
//0000 1001
//0000 1101
结果为13
System.out.println(5^9);
//0000 0101
//0000 1001
//0000 1100
结果为12
System.out.println(~-5);
//0000 0101(5)
//1111 1011(-5)
//0000 0100(~-5)
结果为4
System.out.println(5<<2);
//0000 0101
//0001 0100(向左移两位)
结果为20
System.out.println(-5<<2);
//1111 1011
//1110 1100(补码=反码+1)
//1110 1011(反码=原码取反 符号位不变)
//1001 0100(原码)
结果为-20
System.out.println(-5>>2);
//1111 1011
//1111 1110(补码)
//1111 1101(反码)
//1000 0010(原码)
结果为-2
System.out.println(-5>>>2);
//1111 1011
//0011 1110(补码)
//0011 1101(反码)
//0100 0010(原码)
结果为1073741822
System.out.println(5>>2);
//0000 0101
//0000 0001
结果为1
System.out.println(5>>34);
//0000 0101
//0000 0001
//34>32 右移34%32=2位
结果为1
System.out.println(97=='a');
//在ASCII编码中,字符'a'的编码值是97。
因此,表达式97 == 'a'在大多数编程语言中将会返回true,
表示97等于字符'a'的ASCII码。
System.out.println(5.0==5);
//会输出false
这是因为 5.0 是一个 double 类型的浮点数,而 5 是一个 int 类型的整数。
尽管它们在数值上是相等的,但在Java中,它们是不同的数据类型。
Java的自动类型转换不会自动将整数转换为浮点数来进行比较,因此这个比较会返回false。
可写为System.out.println(5.0=(double)5);
System.out.println(4>5 ^ 'c'>'a');
//4 > 5 的结果是 false,'c' 大于 'a' 的结果是 true。所以 'c' > 'a' 为 true。
当 false 和 true 用 ^ 运算时,结果是 true。
System.out.println((int)(char)(byte)-1);
结果为65535 类型转换

3.指定位置设置为1

问题描述:

将参数v的第n位置设为1,然后返回该结果值。

代码结构:

package com.briup.day2;
​
public class Test3_SetOne {
// ⽅法声明如下:
public static int setBit(int v,int n){
// 提示:使⽤ | 及 <<
// 补全代码
  return v | (1 << n-1);
 }
public static void main(String[] args) {
int r = setBit(10,3);
System.out.println("r: " + r);
//0000 1010
//0000 0001
//0000 0100(向左移n-1位)
//0000 1110(v变为14)
 }
}
//将参数v的第n位置设为1,然后返回该结果值。
// 例如:setBit(10,3)返回14,因为10的二进制表示为1010,将第3位置为1后,变为1011,即14。
​

4.指定位置设置为0

问题描述:

将参数v的第n位置为0,然后返回该结果值。

代码结构:

package com.briup.day2;
​
public class Test4_SetZero {
// ⽅法声明如下:
public static int setZero(int v,int n){
// 提示:使⽤ ~ 及 <<
// 补全代码
  return v & ~ (1 << n-1);
 }
public static void main(String[] args) {
int r = setZero(10,2);
System.out.println("r: " + r);
//0000 1010
//0000 0001
//0000 0010(括号里的进行~运算)
//1111 1101
//0000 1010
//0000 1000
}
}

5.代码分析

分析下⾯⼏段代码,写出输出结果,最后运⾏程序进⾏验证

(1)

int b=5;
if(b>4)
System.out.println(b);
else
b--;
System.out.println(b);

输出 5 5

(2)

public static void main(String[] args) {
​
        int b = 6;
        if (b > 5) {
            b--;
            System.out.println("b大于4");
        }
        else {
            System.out.println("b不大于4");
            }
    }
}

输出 b不大于4

(3)

int age=45;
if(age>20) {
 System.out.println("年轻⼈");
 }else if(age>40){
 System.out.println("中年⼈");
 }else if(age>60){
 System.out.println("⽼年⼈");

输出 年轻人

(4)

int a=80;
switch(a) {
case 90:{
System.out.println("优秀");
}
case 80:{
System.out.println("⼀般");
}
case 60:{
System.out.println("及格");
break;
}
case 50:{
System.out.println("基础弱");
}
}

输出 一般 及格

(5)

int count=0;
while(count>0);
{
System.out.println(count);
}

输出 0

(6)

for (int i = 0; i < 5; i++) {
System.out.print(i);
i*=0.1;
}
System.out.println("循环结束");

输出 11111......(无限循环)

(7)

for(int i=0;i<3;i++) {
System.out.println(i);
if(i==1) {
continue;
}
System.out.println("continue后的输出语句");
}

输出

0 continue后的输出语句 1 2 continue后的输出语句

(8)

for (int i = 0; i < 3; i++) {
System.out.println(i);
if (i == 1) {
return;
}
System.out.println("return后的输出语句");
}

输出

0 return后的输出语句 1

6.九九乘法表

问题描述:

编写⼀个Java程序,实现如下效果的九九乘法表

代码结构:

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();
                }

7.素数问题

题目:

请编写一个Java程序,判断101-200之间有多少个素数,并输出所有素数

public class PrimeNumbers {
public static void main(String[] args) {
int count = 0;
for (int i = 101; i <= 200; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
count++;
}
}
System.out.println("\n101-200之间共有" + count + "个素数");
}
public static boolean isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) return false;
}
return true;
}
}

8.月份计算

题目

请编写一个Java程序,实现从键盘输入月份,判断该月份属于哪个季节 【要求】 如果月份不在1-12之

间,则报错:输入月份有误 匹配月份,输出对应的季节 12-2冬 3-5春 6-8夏 9-11秋 使用java.util.Scanner类完成

import java.util.Scanner;
public class Season {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入月份:");
int month = scanner.nextInt();
switch(month) {
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("输入月份有误");
}
}
}

9.天数计算

题目

请编写一个Java程序,实现从键盘中输入年份 月份 日期,输出这一天是该年的第几天 【要求】 输入的

年份、月份、日期均为数字,不足10的用0x表示,如:1月1日为01 01 输入的年份、月份、日期之间用

空格隔开,如:2023 04 27

Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份 月份 日期(用空格隔开):");
int year = scanner.nextInt();
int month = scanner.nextInt();
int day = scanner.nextInt();
int[] days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (isLeapYear(year)) {
days[1] = 29;
}
int dayOfYear = 0;
for (int i = 0; i < month - 1; i++) {
dayOfYear += days[i];
}
dayOfYear += day;
System.out.println("这一天是该年的第" + dayOfYear + "天");
}
public static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
  1. 完全数问题

题目

请编写一个Java程序,实现输入一个数,判断其是否为完全数 若一个自然数,恰好与除去它本身以外的

一切因数的和相等,这种数叫做完全数。

import java.util.Scanner;
public class PerfectNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = scanner.nextInt();
if (isPerfectNumber(num)) {
System.out.println(num + " 是完全数");
} else {
System.out.println(num + " 不是完全数");
}
}
public static boolean isPerfectNumber(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum == num;
}
}
  1. 图形输出

题目

请编写一个Java程序,实现下面图形的输出

markdown复制代码 
   *
  ***
 *****
*******
 *****
  ***
   *
public class DiamondPattern {
public static void main(String[] args) {
int n = 4; // 控制行数
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i = n - 1; i >= 1; i--) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
  1. 分解质因数

题目

请编写一个Java程序,实现输入一个15以内的正整数,对该正整数进行分解质因数,输出该整数与质因

数的等式。

import java.util.Scanner;
public class PrimeFactorization {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个15以内的正整数:");
int num = scanner.nextInt();
if (num <= 0 || num > 15) {
System.out.println("输入的数字不在有效范围内");
} else {
System.out.print(num + " = ");
for (int i = 2; i <= num; i++) {
while (num % i == 0) {
System.out.print(i);
num /= i;
if (num != 1) {
System.out.print(" * ");
            }
          }
        }
      }
   }
}

标签:case,九九乘法,Java,int,System,运算符,println,public,out
From: https://blog.csdn.net/weixin_64506808/article/details/139402911

相关文章

  • Java Lambda表达式
    Lambda表达式Lambda表达式,也可以称为闭包,是Java8发布的最重要新特性Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中)使用Lambda表达式可以使代码变的更加简洁紧凑语法:(parameter)->expression(parameter)->{statement;}parameter:参数列表,......
  • Java中的依赖注入:提高代码的可维护性和可测试性
            依赖注入(DI)是一种软件设计模式,旨在实现控制反转(IoC),通过这种方式,对象的依赖项(通常是服务)不由对象本身创建,而是由外部容器动态提供。在Java中,依赖注入是实现松耦合和增强代码可维护性的有效手段。本文将探讨Java中的依赖注入概念、其优势以及如何利用现有的框架......
  • [ Python ] 常用运算符对应的魔法方法
    https://www.cnblogs.com/yeungchie/Python中的运算符丰富多样,它们可以分为多个类别,包括算术运算符、比较运算符、逻辑运算符、位运算符、身份运算符、成员运算符等。每个运算符都有其对应的魔法方法(也称为特殊方法或dunder方法,即双下划线方法),这些方法在特定情况下会被Python调用......
  • java反射机制
    java反射机制基础内容反射调用就是指通过反射机制进行的方法调用。反射机制是Java编程语言的一个重要特性,它允许程序在运行时检查、操作和实例化类,方法,字段等,并在运行时获取类的信息以及动态调用类的方法。反射机制使得Java程序可以在运行时动态地加载、探测和使用类,而不需要在......
  • 基于Java的敬老院管理系统设计与实现
    摘要新世纪以来,互联网与计算机技术的快速发展,我国也迈进网络化、集成化的信息大数据时代。对于大众而言,单机应用早已成为过去,传统模式早已满足不了当下办公生活等多种领域的需求,在一台电脑上不联网的软件少之又少,取而代之的是相互连通的软件系统,构成信息大数据社会。快......
  • 为师妹写的《Java并发编程之线程池十八问》被表扬啦!
    写在开头  之前给一个大四正在找工作的学妹发了自己总结的关于Java并发中线程池的面试题集,总共18题,将之取名为《Java并发编程之线程池十八问》,今天聊天时受了学妹的夸赞,心里很开心,毕竟自己整理的东西对别人起到了一点帮助,记录一下!Java并发编程之线程池十八问  经......
  • 堆排序-java
    这次主要讲了堆排序和堆的基本构造,下一期会详细讲述堆的各种基本操作。文章目录前言一、堆排序1.题目描述2.堆二、算法思路1.堆的存储2.结点下移down3.结点上移up4.堆的基本操作5.堆的初始化三、代码如下1.代码如下:2.读入数据:3.代码运行结果总结前言......
  • java选择题
    1.以下哪项不是java基础类型()A.intB.booleanC.StringD.float正确答案:CJava的基础数据类型包括:byte、short、int、long、float、double、char和boolean。String不是一个基础数据类型,而是一个对象类型,它在Java中表示字符串。单选题2.假定AB为一个类,则执行“ABa......
  • Java题目集4~6的总结
    前言面向对象编程课程的“答题判题程序-4”作业是一个综合性的练习,旨在加深学生对面向对象编程思想的理解,并实际应用于解决复杂问题。本作业要求学生设计并实现一个答题程序,模拟小型测试的全过程,包括题目信息、试卷信息、答题信息、学生信息的输入,以及答题结果的判断和输出。家......
  • JVM(Java虚拟机)、JMM(Java内存模型)笔记
    面试常见:请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新?什么是OOM,什么是栈溢出StackOverFlowError?怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取?怎么分析Dump文件?谈谈JVM中,类加载器你的认识?请你谈谈你对JVM的理解?JVM(Java虚拟机)是Java程序的运行环境,它允......