一、二进制序列
获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
public static void main(String[] args) {
//获取二进制的奇偶位
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.print("偶数位: ");
for (int i = 31; i >= 1; i-=2) {
int bit = 0;
bit = (n>>i)%2;
System.out.print(bit+" ");
}
System.out.println();
System.out.print("奇数位: ");
for (int i = 30; i >= 0; i-=2) {
int bit = 0;
bit = (n>>i)%2;
System.out.print(bit+" ");
}
}
二、模拟登陆
编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序
public static void main(String[] args) {
//模拟三次密码输入
Scanner scanner = new Scanner(System.in);
String passWord = "jindachang";
int i = 0;
while(i < 3) {
i++;
String passWord1 = "";
System.out.println("请输入密码: ");
passWord1 = scanner.nextLine();
if(passWord.equals(passWord1)) {
System.out.println("登录成功");
break;
}
}
if(i == 3) {
System.out.println("输入密码超过三次,退出程序");
}
}
三、输出一个整数的每一位
输出一个整数的每一位,如:123的每一位是3,2,1
public static void main11(String[] args) {
//输出整数的每一位
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.print(n+"的每一位为: ");
while(n > 0) {
System.out.print(n % 10 + " ");
n /= 10;
}
}
四、输出乘法口诀表
输出n*n的乘法口诀表,n由用户输入
public static void main(String[] args) {
//n*n乘法表
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+" * "+i+" = "+i*j+" ");
}
System.out.println();
}
}
五、打印 X 图形
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
输出描述:
针对每行输入,输出用“*”组成的X形图案。
public static void main(String[] args) {
//输出X图
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 ||i + j == n-1) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
六、水仙花数
求出0~n之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本 身,如;153=1^3+5^3+3^3,则153是一个“水仙花数“。)
public static void main(String[] args) {
//求100 - n之间的水仙花数
Scanner scanner = new Scanner(System.in);
int n=scanner.nextInt();
for (int i = 100; i <= n; i++) {
int ret = i;
int sum = 0;
while(ret > 0) {
sum +=(ret%10)*(ret%10)*(ret%10);
ret /= 10;
}
if(sum == i) {
System.out.println(i);
}
}
}
七、分数之和
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。
public static void main(String[] args) {
//计算分数的值
double sum = 0;
for (int i = 1; i <= 100; i++) {
if(i%2 == 1) {
sum += 1.0/i;
}else {
sum-=1.0/i;
}
}
System.out.println(sum);
}
八、二进制1的个数
求一个整数,在内存当中存储时,二进制1的个数
public static void main(String[] args) {
//统计二进制中1的个数
Scanner scanner =new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;//计数
while(n>0) {
if(n%2==1) {
count++;
}
n>>=1;
}
System.out.println(count);
}