【javase基础-大杉带你刷好题(上)】

在这里插入图片描述

👀作者简介:大家好,我是大杉。
🚩🚩 个人主页:爱编程的大杉
支持我:点赞+关注~不迷路🧡🧡🧡
✔系列专栏:javase基础⚡⚡⚡
(❁´◡`❁)励志格言:生命可以随心所欲,但不能随波逐流。(宫崎骏 《猫的报恩》)🤞🤞

                  📣📣写在前面哈🌞

🏴‍☠️🏴‍☠️经过了前面几个博客的学习,我们对javase的一些语法有了一定的了解,已经能够写一些简单的代码了,但是还需要刷一些经典的题目对知识有一定的巩固加深,对此,大杉的刷题单早就按耐不住了。“光说不练假把式”咱们废话少说,上题!🧡

一.二进制移位篇:

1.题目一:

题目要求:输入一个数,打印这个数二进制的奇数位和偶数位
题目看似简短,但却需要解决两个问题。
1.如何按顺序逐一判断是偶数位还是奇数位?
2.如何知道该位次是“ 0 ”还是“ 1 ”?

 //打 印一个数二进制的奇数位数和偶数位数字
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        //奇数位至少要移动一位
        for(int i=31;i>=1;i-=2)
        {
            System.out.print(((n >> i) & 1)+" ");
            //和数字一的二进制进行取与运算
        }
        System.out.println();
        //从左往右看,右移动30次正好到正数第二位,
        for(int i=30;i>=0;i-=2)
        {
            System.out.print(((n >> i) & 1)+" ");
        }

    }

在这里插入图片描述

2.题目二:

题目描述:判断一个数二进制中有几个“ 1 ”
上一题明白后这一题就非常简单了

public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    int n=sc.nextInt();
    int count=0;
    for(int i=0;i<32;i++)
    {
        if(((n>>i)&1)==1)
        {
            count++;
        }
    }
        System.out.println("这个数的二进制位有"+count+"个1");


    }

使用Scanner是不要忘记调包import java.util.Scanner;

二:解密篇:

题目描述:编写代码模拟三次密码输入的场景,解密者有三次机会,若输入成功则提示”密码正确“,若失败提示它还有几次机会。

//三次机会猜密码
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String k="mediumint";
        int count=3;
        while(count!=0)
        {
            System.out.println("please input the password!");
            String password=sc.nextLine();
            if(password.equals(k))
            {
                System.out.println("you's input is right");
                break;
            }
            else
            {
                count--;
                System.out.println("you also have"+count+"'s chance");
            }
        }

    }

三.“个性数字”篇

1.题目一:

题目描述:打印0~9999间的自幂数。
问:什么是自幂数?
答:在这里插入图片描述自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)
自幂数包括:独身数、水仙花数、四叶玫瑰数、五角星数、六合数、北斗七星数、八仙数、九九重阳数、十全十美数。

 public static void main(String[] args) {
            for(int i=1;i<=999999;i++) {
                int count = 0;
                int temp = i;
                while (temp != 0) {
                    count++;
                    temp = temp / 10;
                }

                temp = i;
                int sum = 0;
                while (temp != 0) {
                    sum += Math.pow(temp % 10, count);
                    temp /= 10;
                }
                if (sum == i) {
                    System.out.println(i);
                }
            }

    }

2.题目二

题目二:打印乘法口诀表

 public static void main(String[] args) {
        for(int i=1;i<=9;i++)
        {
            for(int j=1;j<=9;j++)
            {
                System.out.print(i+"*"+j+"="+i*j+" ");
            }
            System.out.print("\n");
        }
    }

在这里插入图片描述

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Starry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值