Java 入门基础题

目录

1.输出一个整数的每一位

2.判定素数 

3.求最大值方法的重载 

4.输出闰年 

5.打印 X 图形 

6.数字9 出现的次数

7.计算分数的值 

8. 模拟登陆

9.使用函数求最大值 

 10.斐波那契数列


星光不负赶路人,加油铁子们!!! 

 

 

1.输出一个整数的每一位

题目:

输出一个整数的每一位,如:123的每一位是3,2,1

思路:

本题主要考虑,如何获取一个数字的每一位:

123 % 10 = 3

123/10=12    12%10=2

12/10=1        1%10= 1

代码如下:

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        while(num != 0){
            int n = num % 10;
            num /= 10;
            System.out.print(n + " ");
        }
    }
}

 

2.判定素数 

题目:

给定一个数字,判定一个数字是否是素数 

  • 第1种方法,如果一个数字是素数,那么就只能整除1和自己本身。
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int i;
        for (i = 2;i < n;i++) {
            if(n%i == 0) {
                System.out.println("n不是素数:"+n);
                break;
            }
        }
        if(i >= n) {
            System.out.println(n + "是素数");
        }
}
  • 第2种方式,任何一个数字n,都可以写成 n = a*b的形式。那么必然会有一个数字是小于等于n/2的。
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    int i;
    for (i = 2;i <= n/2;i++) {
        if(n%i == 0) {
            //System.out.println("n不是素数:"+n);
            break;
        }
    }
    if(i > n/2) {
        System.out.println(n + "是素数");
    }
}
  • 第3种方式:任何一个数字n,都可以写成 n = a*b的形式。那么必然会有一个数字是小于等于根号n的。
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    int i;
    for (i = 2;i <= Math.sqrt(n);i++) {
        if(n%i == 0) {
            //System.out.println("n不是素数:"+n);
            break;
        }
    }
    if(i > Math.sqrt(n)) {
        System.out.println(n + "是素数");
    }
}

 

( 注:图片来自网络,如有侵权,请联系删除 )  

 

3.求最大值方法的重载 

题目:

在同一个类中定义多个方法:要求不仅可以求2个整数的最大值,还可以求3个小数的最大值?  

思路:

做这道题,我们首先要明白重载如何实现!!

重载:1.方法名相同2. 参数列表不同(数据类型,个数,顺序)3. 返回值无关
本题可以借助Java原生类Math当中的max方法求最大值,当然也可以自己通过If else进行比较。

Math的使用 不需要导入相关的包

public static int max(int a,int b) {
    return Math.max(a,b);
}

public static double max(double a,double b,double c) {

    double m = Math.max(a,b);
    return Math.max(m,c);
}

也可以这样写:

public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int ret1 = max(a , b);
        System.out.println(ret1);
        double c = 2.23;
        double d = 1.32;
        double e = 5.52;
        double ret2 = max(c , d , e);
        System.out.println(ret2);
    }
    
    public static int max(int x, int y){
        return x >= y ? x : y;
    }

    public static double max(double x, double y, double z){
        return x >= y ? x >= z ? x : z : y >= z ? y : z;
    }
}

 

4.输出闰年 

题目:

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

思路:

首先要搞明白什么是闰年?简单的说,就是能够被  4整除且能被100整除  的年份;或者是能够被  400整除  的年份,即为闰年!

public static void main(String[] args) {
        for (int year = 1000; year < 2000 ; year++) {
            if(year %4 == 0 && year%100 != 0 || year %400==0) {
                System.out.println(year + " 是闰年!");
            }
        }
}

 

5.打印 X 图形 

题目:X形图案_牛客题霸_牛客网 

思路:

假设i代表行,j代表列,当i==j 或者 i+j+1 == n,此时为星号。其余的都是空格。 

 

import java.util.*;


public class Main {
    
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while(scan.hasNextInt()) {
            int n = scan.nextInt();
        
            for(int i = 0;i < n;i++) {
                for(int j = 0;j < n;j++) {
                    if(i == j) {
                        System.out.print("*");
                    }else if( i+j+1 == n) {
                        System.out.print("*");
                    }else{
                        System.out.print(" ");
                    }
                }
                System.out.println();
            }
        }
    }
}

 

( 注:图片来自网络,如有侵权,请联系删除 ) 

 

6.数字9 出现的次数

 题目: 

编写程序数一下 1到 100 的所有整数中出现多少个数字9

思路:

本题主要考察,个位的9怎么判断,十位的9怎么判断?另外99是两个9. 

public static void main(String[] args) {
    int count = 0;
    for (int i = 1; i <= 100; i++) {
        if(i % 10 == 9) {//判断个位的9 
            count++;
        }
        if(i/10 == 9) {
            count++;//判断十位的9
        }
    }
    System.out.println(count);
}

 

7.计算分数的值 

题目:

计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。 

思路: 

1 从上述表达式可以分析出

  该表达式主要由100项,奇数项为正,偶数项为负

2 设置一个循环从1~100,给出表达式中的每一项:1.0/i, 注意此处不能使用1,否则结果全部为0

  然后使用flag标记控制奇偶项,奇数项为正,偶数项为负,然后将所有的项相加即可

public static void main(String[] args) {

    double sum = 0;
    int flg = 1;
    for (int i = 1; i <= 100; i++) {
        sum += 1.0/i * flg;
        flg = -flg;
    }
    System.out.println(sum);
}

 

8. 模拟登陆

题目:

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

思路:

本题注意考察,字符串怎么比较相同?使用方法equals

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

	int count = 3;

	while (count != 0) {
		System.out.println("请输入你的密码:");
		String password = scanner.nextLine();

		//if(password == "123") { 这个判断相等是错误的,具体原因后续String章节进行讲解
		
        if(password.equals("123")) {
			System.out.println("登录成功!");
			break;
		}else {
			count--;
			System.out.println("你还有"+count+" 次机会!");
		}
	}
}

 

 ( 注:图片来自网络,如有侵权,请联系删除 ) 

 

9.使用函数求最大值 

题目:

创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3

​ 要求:

在max3这个函数中,调用max2函数,来实现3个数的最大值计算

思路:

本题比较简单,重点在如何求出两个数的最大值 

public static int max2(int a,int b) {
	return a > b ? a:b;
}

public static int max3(int a,int b,int c) {
	int max = max2(a,b);
	return max > c ? max : c;
}
public static void main(String[] args) {
	System.out.println(max3(2, 5, 1));
}

 

 10.斐波那契数列

题目:

求斐波那契数列的第n项。(迭代实现) 

思路:

斐波那契数列定义为:1 1 2 3 5 8 13 21 我们可以看到,从第3项开始,都等于前一项+前一项的前一项的和。3 = 1+2 、5 = 2+3 、13 = 5+8 。

我们可以先定义n1保存第一项的值,n2保存第2项的值,n3保存第3项的值

每次算一个n3,就同步更新n1和n2的值

/**

   * 求菲薄那切数列的第n项

   * @param n

   * @return

   */

import java.util.Scanner;

//求斐波那契数列的第n项。(迭代实现)
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(fib(n));
    }

    public static int fib(int n){
        if(n == 1 || n == 2){
            return 1;
        }
        int n1 = 1;  // 1 1 2 3 5 8
        int n2 = 1;
        int n3 = 0;
        for(int i = 3;i <= n; i++){
            n3 = n1 + n2;
            n1 = n2;
            n2 = n3;
        }
        return n3;
    }
}

( 注:图片来自网络,如有侵权,请联系删除 )  

希望对大家有所帮助,感谢观看

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于Vue.js的快递管理系统的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 快递类型模块2.3 快递区域模块2.4 快递货架模块2.5 快递档案模块 三、界面展示3.1 登录注册3.2 快递类型3.3 快递区域3.4 快递货架3.5 快递档案3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 …

docker入门,这一篇就够了。

Docker入门&#xff0c;这一篇就够了。 Docker容器虚拟化平台。 前言 接触docker很长时间了&#xff0c;但是工作中也没有用到&#xff0c;所以总是学了忘&#xff0c;忘了学。不过这次&#xff0c;我打算跟大家分享一下我的学习历程&#xff0c;也算是我的独特的复习笔记&…

Easymesh前言介绍

1.什么是Easymesh 什么是Easymesh&#xff0c;这里需要介绍到有3个点&#xff0c;分别是WFA、MAP和Easymesh认证。 WFA是Wi-Fi 联盟&#xff0c;Wi-Fi 联盟是专门针对 Wi-Fi 主题的标准创建机构&#xff0c;并且制定新标准&#xff0c;在 Wi-Fi 基础上提供可用功能&#xff0c…

Windows conan环境搭建

Windows conan环境搭建 1 安装conan1.1 安装依赖软件1.1.1 python安装1.1.2 git bash安装1.1.3 安装Visual Studio Community 20191.1.3.1 选择安装的组件1.1.3.2 选择要支持的工具以及对应的SDK 1.1.4 vscode安装 1.3 验证conan功能1.4 查看conancenter是否包含poco包1.5 查看…

Linux shell编程学习笔记25:tty

1 tty的由来 在 1830 年代和 1840 年代&#xff0c;开发了称为电传打字机&#xff08;teletypewriters&#xff09;的机器&#xff0c;这些机器可以将发件人在键盘上输入的消息“沿着线路”发送在接收端并打印在纸上。 电传打字机的名称由teletypewriters&#xff0c; 缩短为…

程序员月入过万的秘密,赶快收藏史上最靠谱接单攻略!!!

近几年经济十分不景气&#xff0c;无论是哪一行总是面临着生活的不容易。不少人都选择多干几份工作来养家糊口&#xff0c;保证家人的生活。那么咱们程序员该如何是好呢&#xff1f;相信不少人已经有了答案&#xff0c;那就是网上接单&#xff01;那么本期就让小编带你一起来看…

论文阅读:Robust High-Resolution Video Matting with Temporal Guidance

发表时间&#xff1a;2021年8月25日 项目地址&#xff1a;https://peterl1n.github.io/RobustVideoMatting/ 论文地址&#xff1a;https://arxiv.org/pdf/2108.11515.pdf 我们介绍了一种鲁棒的&#xff0c;实时的&#xff0c;高分辨率的人体视频匹配方法&#xff0c;以实现了新…

No205.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

【C++】类与对象 I

类与对象 I &#xff1a; 前言&#xff1a;&#xff08;C&#xff09;面向过程 和&#xff08;C&#xff09;面向对象 初步认识前言&#xff1a;类的引入一、类的介绍二、类的定义&#xff08;一&#xff09;class 语法&#xff08;二&#xff09;类的两种定义方式&#xff1a;…

【Qt之QWizard】使用1

QWizard使用 描述方法枚举&#xff1a;enum QWizard::WizardButton枚举&#xff1a;enum QWizard::WizardOption枚举&#xff1a;enum QWizard::WizardStyle枚举&#xff1a;enum QWizard::WizardPixmap常用成员方法槽函数信号 示例设置标题添加page页设置按钮文本设置自定义按…

IntelliJ IDEA cmd和idea Terminal查看java版本不一致

参考&#xff1a;IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解决方案 1、idea清缓存重启 没用 2、删除缓存文件 没试 3、修改环境变量的顺序 没试 4、重启电脑 麻烦&#xff0c;没试 5、项目配置jdk7 没试 按照这个url配置了一个遍 https://blog.csdn…

【电路笔记】-诺顿定理(Norton‘s Theorem)

诺顿定理&#xff08;Norton’s Theorem&#xff09; 文章目录 诺顿定理&#xff08;Nortons Theorem&#xff09;1、概述与定义2、诺顿模型确定3、一些线性电路的诺顿模型3.1 单电压源3.2 单电流源3.3 多电流/电压源 5、总结 本文是我们上一篇有关戴维南定理的文章的延续。 在…

Netty+SpringBoot 打造一个 TCP 长连接通讯方案

项目背景 最近公司某物联网项目需要使用socket长连接进行消息通讯&#xff0c;捣鼓了一版代码上线&#xff0c;结果BUG不断&#xff0c;本猿寝食难安&#xff0c;于是求助度娘&#xff0c;数日未眠项目终于平稳运行了&#xff0c;本着开源共享的精神&#xff0c;本猿把项目代码…

Android拖放startDragAndDrop拖拽Glide灵活加载堆叠圆角图,Kotlin(6)

Android拖放startDragAndDrop拖拽Glide灵活加载堆叠圆角图&#xff0c;Kotlin&#xff08;6&#xff09; Android拖放startDragAndDrop拖拽Glide加载堆叠圆角图&#xff0c;Kotlin&#xff08;5&#xff09;-CSDN博客文章浏览阅读1.3k次。&#xfeff;&#xfeff;Android Dyna…

Mybatis-Plus最新教程

目录 原理&#xff1a;MybatisPlus通过扫描实体类&#xff0c;并基于反射获取实体类信息作为数据库信息。 ​编辑1.添加依赖 2.常用注解 3.常见配置&#xff1a; 4.条件构造器 5.QueryWrapper 6.UpdateWrapper 7.LambdaQueryWrapper:避免硬编码 8.自定义SQL 9.Iservic…

ESP32网络开发实例-将DS18B20传感器读数发送到InfluxDB

将DS18B20传感器读数发送到InfluxDB 文章目录 将DS18B20传感器读数发送到InfluxDB1、InfluxDB、DS18B20介绍2、软件准备3、硬件准备4、代码实现在本文中,我们将介绍如何将 DS18B20传感器读数发送到 InfluxDB 时间序列数据库。 使用 InfluxDB 数据库的一大特点是可以在确定的时…

问界「力压」比亚迪,到底什么是RAEB?

作者 | Amy 编辑 | 德新 本周&#xff0c;一辆AITO问界M5智驾版「骑」上比亚迪海豚的视频引发热议。从视频推测&#xff0c;应该是M5在倒车过程中&#xff0c;猛地加速&#xff0c;一下冲到海豚车顶了。 这样富有戏剧性的视频&#xff0c;很快引爆了各大车友群。 不过在吃瓜…

AI歌姬,C位出道,基于PaddleHub/Diffsinger实现音频歌声合成操作(Python3.10)

懂乐理的音乐专业人士可以通过写乐谱并通过乐器演奏来展示他们的音乐创意和构思&#xff0c;但不识谱的素人如果也想跨界玩儿音乐&#xff0c;那么门槛儿就有点高了。但随着人工智能技术的快速迭代&#xff0c;现在任何一个人都可以成为“创作型歌手”&#xff0c;即自主创作并…

计算机组成原理——指令系统题库1-20

1、以下有关指令系统的说法中错误的是什么。 A、 指令系统是一台机器硬件能执行的指令全体 B、 任何程序运行前都要先转化为机器语言 C、 指令系统是计算机软件、硬件的界面 D、 指令系统和机器语言是无关的。 2、在CPU执行指令的过程中&#xff0c;指令的地址由什么给出。…

hash算法

一、Hash散列算法介绍 1.引言 每个人在这个社会上生存&#xff0c;都会有一个属于自己的标记&#xff0c;用于区分不同的个体。通常使用名字就可以了。但是一个名字也并不能完全表示一个人&#xff0c;因为重名的人很多。所以我们可以使用一个身份证号或者指纹来表示独一无二…