Java入门必刷的基础题1(八道)

news2025/7/20 7:34:03

目录

1. 第一题

2. 判定一个数字是否是素数

3. 打印 1 - 100 之间所有的素数

4. 输出 1000 - 2000 之间所有的闰年

5. 输出乘法口诀表

6. 求两个正整数的最大公约数

7. 求二进制中 1 的个数

8.分别输出二进制中的奇数位和偶数位


下面的源码大多只有方法体,需要自己补全类之后才能用 

1. 第一题

(1)题目

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

(2)本题思路

  • 这里使用的:是Java当中的,从键盘输入数据的方式,固定格式。其中age是变量的名字,scanner是工具包的名字。
import java.util.Scanner;//导入的包
 Scanner scanner = new Scanner(System.in);//工具
        int age = scanner.nextInt();//从键盘输入年龄
  • 这题一看,就是多分支结构,并且每个选项是有范围的,所以想到if的多分支结构
if(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("老年");
        }

(3)完整代码

import java.util.Scanner;//导入的包
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);//工具
        int age = scanner.nextInt();//从键盘输入年龄
        if(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("老年");
        }
 scanner.close();//关闭工具
    }
}

2. 判定一个数字是否是素数

(1)了解素数

素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

(2)思路

  • 代码判断素数的写法:ret就是需要判断是否为素数,只需要拿i=2到i=根号ret来判断即可(一种方法)
 boolean tmp = true;
 while(i<=Math.sqrt(ret)) {
            if(ret%i==0) {
                System.out.println(ret+"不是素数");
                tmp = false;
                break;
            }
            i++;
        }
  •  导致循环结束的两种条件:不是素数提前跳出;是素数循环结束。所以需要拿一个值去标记一下:tmp
  • 如果值没有被修改,那就是素数,并打印
 if(tmp) {
           System.out.println(ret+"是素数");
       }

(3)完整代码

import java.util.Scanner;//导入的包
public class Test {
 public static void main(String[] args) {//判断素数
        Scanner scanner = new Scanner(System.in);
        int ret = scanner.nextInt();
        int i=2;
        boolean tmp = true;
        while(i<=Math.sqrt(ret)) {
            if(ret%i==0) {
                System.out.println(ret+"不是素数");
                tmp = false;
                break;
            }
            i++;
        }
       if(tmp) {
           System.out.println(ret+"是素数");
       }
        scanner.close();//关闭工具
    }
}

3. 打印 1 - 100 之间所有的素数

(1)思路

本体是在第二题的基础上改造,也就是在外层套上一个循环即可,用来输出1-100的数字;要注意ret++的操作

(2)完整代码

public static void main(String[] args) {//判断素数
       int ret = 2;
       while(ret<=100) {
           int j=2;
           boolean tmp = true;
           while(j<=Math.sqrt(ret)) {
               if(ret%j==0) {
                   tmp = false;
                   break;
               }
               j++;
           }
           if(tmp) {
               System.out.println(ret+"是素数");
           }
           ret++;
       }

4. 输出 1000 - 2000 之间所有的闰年

(1)判断闰年的方法

闰年有两种:

  • 普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
  • 世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。

所以代码写法:只需要将判断条件写在一起即可

 if(year%400==0||(year%100!=0&&year%4==0)) {
                System.out.println(year);
            }

(2)完整代码

public static void main6(String[] args) {
        //输出1000-2000之间的闰年
        int year = 1000;
        while(year<=2000) {
            if(year%400==0||(year%100!=0&&year%4==0)) {
                System.out.println(year);
            }
            year++;
        }
    }

5. 输出乘法口诀表

(1)了解乘法口诀表

 这就是乘法口诀表的性质和特点,里面的表格就需要我们去考虑了。

(2)思路

  • 我们可以发现,这可以想象成一个“二维数组”,肯定就是需要两个for循环来输出的。细节在于第二个循环:j<=i;
 for(i=1;i<=9;i++) {
            int j=1;
            for(j=1;j<=i;j++) {
                System.out.print(i+"*"+"="+(i*j)+" ");
            }
            System.out.println();
        }
  •  打印格式:分别需要输出i,j,i*j还有空格,第二层循环结束再换行
 System.out.print(i+"*"+"="+(i*j)+" ");

(3)完整代码

 public static void main(String[] args) {
        //输出九九口诀表
        int i=1;
        for(i=1;i<=9;i++) {
            int j=1;
            for(j=1;j<=i;j++) {
                System.out.print(i+"*"+"="+(i*j)+" ");

            }
            System.out.println();
        }

    }

6. 求两个正整数的最大公约数

(1)介绍最大公约数

概念:公约数是可以同时整除两个数,公约数最大的那个就是最大公约数,如:4是12与16的最大公约数,12/4==0且16/4==0,比4大的就不能整除他们俩

特点:一定<=他们之间最小的

(2)常规方法

  •  找最小值
  int a = 12;
        int b = 16;
        int min=a>b?b:a;//找最小值
  • 找最大公约数:从最小值开始往下找 ,满足条件即是最大公约数
 while(min>=1) {
            if(a%min==0&&b%min==0) {
                break;
            }
            min--;
        }
  • 完整代码 
public static void main(String[] args) {
       //求最大公因数
        int a = 12;
        int b = 16;
        int min=a>b?b:a;//找最小值
        while(min>=1) {
            if(a%min==0&&b%min==0) {

                break;
            }
            min--;
        }
        System.out.println("最大公约数是:"+min);
    }

(3)辗转相除法

  • 了解辗转相除法的做法(具体原理是什么我也不是很清楚)

用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。

  • 辗转的过程 

  • 完整代码
public static void main(String[] args) {
       //求最大公因数
        int a = 12;
        int b = 16;
        int c = a%b;
        while(c!=0) {
            a = b;
            b = c;
            c = a%b;
        }
        System.out.println("最大公约数:"+b);
    }

7. 求二进制中 1 的个数

(1)了解题目要求

如:7,二进制为00000111(只展示8位),1的位数共有3,所以需要求出3

(2)常规方法 

思路:

  • 符号按位与(&),对应位上都是1结果为1,其他为0。所以可以使用和1按位与,可以确定最低位是否为1
  • 按位与一次只能得到最低位,所以配合无符号右移符号(>>>)可以完成每一位的检查。
  • 选择无符号右移的原因:右移之和左边会补符号号,负数的话则会补1
 if(((a>>>i)&1)==1) {
               sum++;
           }

完整代码:

public static void main(String[] args) {
        //求二进制中1的个数
       int a = -1;
       int sum = 0;
       int i = 0;
       for(i=0;i<32;i++) {
           if(((a>>>i)&1)==1) {
               sum++;
           }
       }
       System.out.println(sum);
    }

(3)快速法

原理(举例说明):

完整代码: 

 public static void main(String[] args) {
        //求二进制中1的个数
        int n = 7;
        int i = 0;
        while(n!=0) {
            n=n&(n-1);
            i++;
        }
        System.out.println(i);
    }

8.分别输出二进制中的奇数位和偶数位

(1)题目意思

如:7的二进制为:00000000 00000000 00000000 00000111 

奇数位(标红的数字):1010101111010101010101 0100011

偶数位(标黑的数字):1010101111010101010101 0100011

(2)思路

  • 同样让最低位与1进行按位与操作,原数是0则是0,1则是1
  • 每次需要右移两位(跳过奇数位或者偶数位)
  • 分两个循环分别输出奇数位跟偶数位

 (3)完整代码

public static void main(String[] args) {
        int n = 7;
        int i=0;
        //获取奇数位
        System.out.print("奇数位:");
        for(i=30;i>=0;i-=2) {

            System.out.print(((n>>>i)&1)+" ");
        }
        System.out.println();
        System.out.print("偶数位:");
        for(i=31;i>=1;i-=2) {

            System.out.print(((n>>>i)&1)+" ");
        }

    }

本节完…………………………………………


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1157397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

玩家必备,2款顶级游戏录屏软件!

“游戏怎么录屏呀&#xff1f;最近迷上了网游&#xff0c;觉得自己的游戏技术挺厉害的&#xff0c;想把游戏视频录下来出一个教程&#xff0c;方便给朋友进行参考&#xff0c;但是我不会录屏&#xff0c;大家有没有游戏录屏的软件或者方法推荐一下。” 随着游戏产业的飞速发展…

用二维码搭建设备巡检系统,轻松实现扫码巡检和数字化台账

针对设备状态不透明、纸质记录效率低、故障报修不及时等设备点巡检的常见问题&#xff0c;可以在草料二维码上自主搭建涵盖点检、巡检、报修、维修、保养等功能的管理系统&#xff0c;无需安装APP&#xff0c;微信扫码就能查看设备档案、用表单替代纸质检查表。 譬如“台州沿海…

什么是威廉姆斯的三维结构?澳福详解作用

从心理学视角出发&#xff0c;威廉姆斯将市场视为一个三维结构&#xff0c;包含了时间、价格与交易者的心理三大组成部分。他提出的成功交易策略是“随波逐流&#xff0c;乘风破浪&#xff0c;随波逐流”。为了培养这种思维方式&#xff0c;交易者应学会如何将自身的观念、观点…

虹科示波器 | 汽车免拆检修 | 2012 款上汽大众帕萨特车 发动机偶尔无法起动

一、故障现象 一辆2012款上汽大众帕萨特车&#xff0c;搭载CFB发动机&#xff0c;累计行驶里程约为12万km。车主反映&#xff0c;将点火开关置于起动挡&#xff0c;偶尔只能听到“咔哒”一声&#xff0c;起动机没有反应&#xff0c;类似蓄电池亏电时起动发动机的现象。为此&…

AI 革命:最佳 txt 转纹理工具

推荐稳定扩散AI自动纹理工具&#xff1a; DreamTexture.js自动纹理化开发包 游戏产业和人工智能革命 随着人工智能革命迎来一个具有无可比拟潜力的新时代&#xff0c;游戏行业正处于巨大转变的边缘。随着开发人员利用人工智能的力量&#xff0c;他们正在解锁创新方法来增强游戏…

2023年测试工程师想进BAT必须具备的几项素质!

我发现一个奇怪的现象&#xff1a;总是听到身边的程序员朋友谈论BAT&#xff08;中国大陆互联网的三大巨头&#xff1a;百度、阿里、腾讯&#xff09;以及如何进入BAT&#xff0c;却鲜少有测试会去谈论或者考虑这些问题。 我不知道这是为什么&#xff0c;或者我就算知道也只是…

剑指Offer || 084.全排列||

题目 给定一个可包含重复数字的整数集合 nums &#xff0c;按任意顺序 返回它所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2],[1,2,1],[2,1,1]]示例 2&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1…

【Git】Git使用指南+上传项目踩坑总结

记录Git 使用和命令解读&#xff1a; git init git add .git commit -m "first commit"git branch -M maingit remote add origin https://github.com/xxx.gitgit push -u origin main 这是最经常用到的使用 git上传项目的代码&#xff0c;值得注意的是&#xff0c…

进程间通信(IPC)

进程间通信概述 进程间通信是指不同进程之间交换或传播信息。进程间通信的方式通常有管道通信、消息队列、信号量、共享存储、Socket、Stream等&#xff0c;其中Socket和Stream支持不同主机上的两个进程间的通信。 管道&#xff08;无名管道&#xff09;&#xff1a; 管道通信…

无需频繁登录支付宝网站即可完成商家转账,实时到账,方便安全快捷

大家好&#xff0c;我是小悟 转账到支付宝账户是一种通过 API 完成单笔转账的功能&#xff0c;支付宝商家可以向其他支付宝账户进行单笔转账。 商家只需输入另一个正确的支付宝账号&#xff0c;即可将资金从本企业支付宝账户转账至另一个支付宝账户。 该产品适用行业较广&am…

MATLAB中preparets函数用法

目录 语法 说明 示例 准备开环和闭环网络的数据 preparets函数的功能是为网络模拟或训练准备输入和目标时间序列数据 语法 [Xs,Xi,Ai,Ts,EWs,shift] preparets(net,Xnf,Tnf,Tf,EW) 说明 [Xs, Xi, Ai, Ts, EWs, shift] preparets(net, Xnf, Tnf, Tf, EW) 这个函数接受…

云安全-云原生基于容器漏洞的逃逸自动化手法(CDK check)

0x00 docker逃逸的方法种类 1、不安全的配置&#xff1a; 容器危险挂载&#xff08;挂载procfs&#xff0c;Scoket&#xff09; 特权模式启动的提权&#xff08;privileged&#xff09; 2、docker容器自身的漏洞 3、linux系统内核漏洞 这里参考Twiki的云安全博客&#xff0c;下…

flutter之bloc使用详解

flutter中一切皆为Widget&#xff0c;因此在我们开发中&#xff0c;往往业务和UI逻辑写在一起&#xff0c;这样不利于代码维护&#xff0c;因此状态管理框架久诞生了&#xff0c;这篇就开始讲一讲Bloc。 对于Bloc库有两个&#xff0c;如下图&#xff1a; flutter_bloc其实是对…

【webrtc】 对视频质量的码率控制的测试与探索

目录 环境设置 transport-cc goog-remb (webrtc中的两种码率算法&#xff09; 修改成remb算法 测试 效果 后续 可参考工程 环境设置 要到meshx上操作 telnet 112 然后执行factory_env show |grep meshx_ip 之后telnet meshx_ip 用户名admin 密码****.119 执行一下r…

IDEA连接数据库之后没有显示数据库里面的表

IDEA连接数据库之后没有显示数据库里面的表 第一步&#xff1a;点击下面红框处 第二步&#xff1a;点击Schemas那里 第三步&#xff1a;选择自己当前数据库的名称 最后回到database页面查看&#xff0c;相关数据可显示 如图&#xff1a;

提升客户体验,CRM客户管理系统有哪些优势?

人人都说CRM能够提升效率、跟踪销售流程、提升业绩、促进协作等等&#xff0c;但其中很重要的一项&#xff0c;便是改善并提升客户体验。在提升客户体验方面&#xff0c;CRM客户管理系统也有着独特的见解和优势。在了解CRM如何提升客户体验之前&#xff0c;我们要先说说什么是客…

回合制游戏特点,Q版回合制游戏开发

回合制游戏是一种视频游戏类型&#xff0c;其特点包括以下方面&#xff1a; 回合制战斗&#xff1a;回合制游戏的最显著特点是战斗和行动是基于回合制的&#xff0c;玩家和敌人交替进行动作。每个回合通常包括一系列动作&#xff0c;例如攻击、防御、使用道具等。这种机制允许…

Flutter 小技巧之不一样的思路实现炫酷 3D 翻页折叠动画

今天聊一个比较有意思的 Flutter 动画实现&#xff0c;如果需要实现一个如下图的 3D 折叠动画效果&#xff0c;你会选择通过什么方式&#xff1f; 相信可能很多人第一想法就是&#xff1a;在 Dart 里通过矩阵变换配合 Canvas 实现。 因为这个效果其实也算「常见」&#xff0c;…

el-table样式

1、实现效果&#xff0c;外部框是蓝绿色边框&#xff0c;深色背景&#xff0c;里面的表格首先设置透明色&#xff0c;然后应用自定义斑马纹。 2、代码 template代码&#xff0c;其中样式frameBordStyle是深色背景框&#xff0c;不负责表格样式&#xff0c;表格样式由tableStyl…

RCurl库做爬虫效率怎么样

RCurl库是一个非常强大的网络爬虫工具&#xff0c;它提供了许多功能&#xff0c;例如从服务器下载文件、保持连接、上传文件、采用二进制格式读取、句柄重定向、密码认证等等。使用RCurl库进行网络爬虫可以方便地获取网站上的数据&#xff0c;并进行数据分析和挖掘。在使用RCur…