👀作者简介:大家好,我是大杉。
🚩🚩 个人主页:爱编程的大杉
支持我:点赞+关注~不迷路🧡🧡🧡
✔系列专栏: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");
}
}