当前位置:首页 » 《随便一记》 » 正文

【JavaSE】java刷题——基础语法熟练应用

25 人参与  2024年04月01日 10:05  分类 : 《随便一记》  评论

点击全文阅读


前言

通过本篇题目,可以让初学Java的小伙伴们更加熟练Java的基础语法~

欢迎关注个人主页:逸狼


创造不易,可以点点赞吗~

如有错误,欢迎指出~



题1:数字9 出现的次数

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

思路

分两步

取个位上的9  有9 19 29……99 有10个取十位上的9  有90 91 92 93……99 有10个

代码实现

public class test {    //1~100数字9出现的个数    public static int fan1(int n){        int count=0;        for (int i = 1; i <=100 ; i++) {            if(i%10==9){//取个位上的9  有9 19 29……99 有10个                count++;            }            if(i/10==9){//取十位上的9  有90 91 92 93……99 有10个                count++;            }        }        return count ;    }    public static void main(String[] args) {        System.out.println(fan1(100));    }

结果是20

题2:计算阶乘的和

题述:输入一个正整数,求它从1到该整数阶乘的和。如指定数字5,求1!+2!+……5!

思路

先实现一个数求阶乘的方法,再相加

代码实现

 //写一个函数求阶乘    public static int fac(int n) {        int ret = 1;        for (int i = 1; i <= n; i++) {            ret *= i;        }        return ret;    }        //此函数求阶乘的和    public static int facSum(int n){            int sum=0;            for (int i = 1; i <=n ; i++) {                sum+=fac(i);            }            return sum;//要记得要写返回值,漏了就会一直报错        }    public static void main(String[] args) {        int n=facSum(5);        System.out.println(n);    }

结果是153

题3:求水仙花数

水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(,水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。

思路

统计当前数字有几位数取到数字的每一位上的数字判断是否符合要求

例如 153(1^3 + 5^3+ 3^3 = 153)

步骤是先统计153有3位数字,再取到153每一位数字,最后判断1^3 + 5^3+ 3^3 = 153是否成立

代码实现

    public static void main(String[] args) {        //求水仙花数        for (int i = 0; i <= 999999; i++) {//遍历1~999999的数字            //计算当前有几位数            int count=0;            int tmp=i;            while(tmp!=0){                count++;                tmp/=10;            }            //求tmp的每一位            tmp=i;            int sum=0;            while(tmp!=0){                sum+=Math.pow(tmp%10,count);//计算tmp的count次方                tmp/=10;            }            if(sum==i){                System.out.println(i);            }        }    }

结果中153 、370、371、407是水仙花数 

题4:打印素数

打印1~100的素数

思路1

法一:写一个方法判断一个数字是否是素数,再遍历2~100,打印符合的数字

代码实现1

//判断一个数字是否是素数    public static boolean is_prime(int n){        for (int i = 2; i <n ; i++) {            if(n%i==0){                return false;            }        }        return true;    }    public static void main(String[] args) {        //打印1~100的素数        for (int i = 2; i <=100 ; i++) {            if(is_prime(i)){                System.out.print(i+" ");            }        }    }

思路2

法二:num=a*b 其中a和b两个必有一个 <= 根号num

代码实现2

 public static void main(String[] args) {        //打印1~100的素数        int num=100;        for (int k = 1; k <= num; k++) {            int i = 2;            //跳出for循环时有两个结果            for ( ; i <=Math.sqrt(k) ; i++) {//1.i>根号num                if(k%i==0){//2.num被整除了                    break;                }            }            if(i>Math.sqrt(k)) {                System.out.println(k+" ");            }    }

结果

题5:猜数字游戏的实现

import java.util.Random;import java.util.Scanner; public static void main(String[] args) {        //java实现猜数字游戏        int count=5;        Scanner scan=new Scanner(System.in);        Random random=new Random();        int randNum=random.nextInt(100);//[0,100)        //System.out.println("随机数是:"+randNum);用于测试时使用        while(true){            System.out.println("你还有"+count+"次机会!");            System.out.println("请输入要猜的数字:");            int num=scan.nextInt();            if(num>randNum){                System.out.println("猜大了!");            }            else if(num<randNum){                System.out.println("猜小了!");            }            else{                System.out.println("恭喜你,猜对了!数字是:"+randNum);                break;            }            count--;            if(count==0){                System.out.println("很遗憾,挑战失败!数字是:"+randNum);                break;            }        }    }

结果

题6:打印x形图案

思路

利用坐标关系i==j和i+j=n-1时打印*,其他情况打印空格

代码实现

    //打印x形图案    public static void printX(int n){        for (int i = 0; i < n; i++) {            for (int j = 0; j < n; j++) {                if(i==j||i+j==n-1){                    System.out.print("*");                }                else{                    System.out.print(" ");                }            }            System.out.println();//换行        }    }    public static void main(String[] args) {        printX(5);    }

结果

题7:计算分数

代码实现

    //计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值    public static void main(String[] args) {        double ret=0;//注意这里要用double,不能用int        int flag=1;        for (int i = 1; i <=100;i++) {            ret += 1.0 / (flag * i);            flag=-flag;//用于改变i的符号        }        System.out.println(ret);    }

结果 0.688172179310195

题8:模拟登陆

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

代码实现

    public static void login(){        int count=3;        Scanner scan=new Scanner(System.in);        String string="123456";        while(count!=0){            System.out.println("请输入密码:");            String password= scan.nextLine();            if(password.equals(string)){//匹配字符串用equals                //登录成功                System.out.println("登录成功!");                break;            }            else{                //登录失败                count--;                System.out.println("密码错误,你还有"+count+"次机会!");            }        }    }    public static void main(String[] args) {        login();    }

结果


点击全文阅读


本文链接:http://zhangshiyu.com/post/88794.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1