IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java基础语法2——牛客篇 -> 正文阅读

[Java知识库]java基础语法2——牛客篇

学习目标:

首先带着大家把牛客java基础语法篇的题目过一遍。

今日学习内容:

笔记

1、数列求和

有数列为:9,99,999,…,9999999999。要求使用程序计算此数列的和,并在控制台输出结果。(请尝试使用循环的方式生成这个数列并同时在循环中求和)。

分析:
既然题目说直接在循环中求和,那我们就没必要定义一个数组放这些数了。观察该数列的数字规律,我们可以发现都和9有关,那我们就先定义一个long型的变量来赋值一个9,然后每次进行乘10在加9,乘几个十就与循环体中的i有关了。

扩展:也可以尝试使用parseLong(String x)方法,该方法目的在于将String参数解析为有符号的long。简单来讲该方法是一个将字符转换为数字的方法。
以本题为例:sum = Long.parseLong(a);意思就是将字符串"9"以十进制的方式转换为数字。代码如下:

public class Main {
    public static void main(String[] args) {
        long sum = 0;
        long base = 9;
        for(int i = 0;i < 10;i++){
            sum += base;
            base = base * 10 + 9;
        }
        /*String a = "9";
        long sum = 0;
        for(int i = 0;i<10;i++){
            sum = Long.parseLong(a,10) + sum;
            a = a + "9";
        }*/
        System.out.println(sum);
    }
}

2、统计输入正数个数

控制台输入整数,请设计一个死循环,当用户输入非正数时停止输入。请给出用户输入的正整数个数(默认输入个数不超过2147483647)

代码:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        int count = 0;
        Scanner scanner = new Scanner(System.in);
        while(true){
            if(scanner.nextInt() <= 0){
                System.out.print(count);
                break;
            }
            else{
                count++;
            }
        }
    }
}

3、求最小公倍数

编写一个方法,该方法的返回值是两个不大于100的正整数的最小公倍数
示例1
输入:3 7
输出:21

分析:如何找到两数的最小公倍数?我们可以想到这两个数肯定是能被最小公倍数整除的,即以这两个数较大的数为基数,设计一个循环,每次进行判断这个基数能否整除那个较小的数,不能则基数再加上较大的数,能则返回。

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        int m = console.nextInt();
        int n = console.nextInt();
        int result = getCM(m, n);
        System.out.println(result);
    }

    public static int getCM(int m, int n){

        int max = (m > n ? m : n);
        int min = (m < n ? m : n);
        for(int i = max;i <= m * n;i += max){
            if(i % min == 0){
                return i;
            }
        }
        return 0;
    }
}

4、小球走过路程计算

一球从h米高度自由落下,每次落地后反弹回原高度的一半再落下,求它在第n次落地时共经过了多少米?第n次反弹多高?(先输出反弹的高度再输出经过的距离,中间用空格隔开)
备注:
结果保留三位小数,保留方式已经写在预设方法备注中

分析:
定义一个变量sum,用于记录第n次反弹后经过的总距离。
使用循环模拟落地反弹的过程,每次反弹,高度减半,每次经过的距离为反弹后距离的2倍,总距离只需将累加的数再减去初始的高度,因为对于初始高度我们也乘了2。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        float h=scanner.nextFloat();
        int n =scanner.nextInt();
        float high = h;
        float sum = 0;
        for(int i = 0;i < n;i++){
            sum += 2 * h;
            h /= 2;
        }
        System.out.println(String.format("%.3f",h) + " " + String.format("%.3f",sum - high));
    }
}

5、求平均数

键盘输入任意多个10000以内正整数(负数代表结束),求出它们的平均数。(平均数为double类型,保留两位小数)

分析:
定义一个计数变量i和一个累加和变量sum,分别用于记录整数个数,以及它们的累加和。
使用一个循环进行模拟输入,如果是负数,则终止循环。每轮循环,计数加一,并且累加和加上对应数字,最后将累加和与计数的商作为平均数输出。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        double average = 0,sum = 0;
        int i = 0;
        while(true){
            int num = scan.nextInt();
            if(num < 0){
                break;
            }
            sum += num;
            i++;
        }
        average = sum / i;
        System.out.print(String.format("%.2f",average));
    }
}

5、判断质数

请补全预设代码中判断质数的方法。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Main main = new Main();
Scanner scan = new Scanner(System.in);
int number = scan.nextInt();
System.out.println(main.isPrimeNumber(number));
}
public Boolean isPrimeNumber(int number) {
//write your code here…
}
}
输入:2
输出:true

分析:
定义一个boolean型变量,判断是否是质数。
使用一个循环进行判断,如果number能被2到number的任意一个数整除(这个数的平方根要小于number),说明不是质数。自己思考为什么是平方根。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Main main = new Main();
        Scanner scan = new Scanner(System.in);
        int number = scan.nextInt();
        System.out.println(main.isPrimeNumber(number));
    }
    public Boolean isPrimeNumber(int number) {
        for(int i = 2;i * i < number;i++){
            if(number % i ==  0){
                return false;
            }
        }
        return true;
    }
}

6、计算整数位数

输入一个整数,计算它的位数。如果输入的整数不大于0则输出这个数
示例1
输入:9999
输出:4
示例2
输入:0
输出:0
示例3
输入:-1
输出:-1

分析:
定义一个位数变量cnt,记录对应位数变化,初始值记为1.
使用一个for循环,只要num/10大于0,则位数加一,否则输出cnt。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        scan.close();
        int cnt = 1;
        if(num <= 0){
            System.out.print(num);
        }
        for(int i = 0; ;i++){//write code here......
            if((num /= 10) > 0)
                cnt++;
            else{
                System.out.print(cnt);
                break;
            }
        }
    }
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-18 15:50:19  更:2021-12-18 15:51:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 16:28:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码