🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL|
💫个人格言:“没有罗马,那就自己创造罗马~”
文章目录
- <font face="小四" color="red" size=3>JAVA输入的两种方式
- <font face="小四" color="red" size=3>JAVA输出的三种方式
- <font face="小四" color="red" size=3>JAVA循环输入
- `Java输入`
- `生成随机数`
- `打印九九乘法表`
- `求两个数的最大公约数 - 利用辗转相除法`
- `计算0-999的水仙花数`
- `写一个函数,返回参数二进制中 1 的个数`
JAVA输入的两种方式
JAVA输出的三种方式
JAVA循环输入
import java.util.Scanner;
public class TestDemo4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String name = scanner.nextLine();
System.out.println(name);
}
}
}
Java输入
Scanner scanner = new Scanner(System.in);
生成随机数
//系统生成一个随机数
Random random = new Random();
int randNum = random.nextInt(100);//[0,100) bound : 范围
打印九九乘法表
public class TestDemo4 {
public static void main(String[] args) {
for(int i = 1 ; i <= 9 ; i++){
for(int j = 1 ; j <= i ; j++){
System.out.print(i + "*" + j + "=" + (i * j) + " " ); // 注意这里是不换行打印
}
System.out.println();//每打印一行就换行
}
}
求两个数的最大公约数 - 利用辗转相除法
辗转相除法:
例如:a = 24 , b = 18
24 % 18 = 6
因为余数不等于0,所以我们可以把原来的除数变成被除数,余数变成除数,再进行计算.
18 % 6 = 0
当余数为0时,除数6就是它的最大公约数.
public class TestDemo4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//求两个正整数的最大公约数
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = a % b;//余数
while(c != 0){
a = b;
b = c;
c = a % b ;
}
System.out.println(b);
}
计算0-999的水仙花数
public class TestDemo4 {
public static void main(String[] args) {
//求0 - 999的水仙花数
for (int i = 1; i < 999 ; i++) {
//计算当前数字的位数
int count = 0;
//定义一个临时变量用于存储数字,因为计算完位数i会被除为0,所以要定义一个临时变量tmp存储它
int tmp = i;
//计算位数
while (tmp != 0)
{
count++;
tmp /= 10;
}
// tmp --> 0
tmp = i; //再把原来的数字赋值给tmp
int sum = 0;
while (tmp != 0){
sum += Math.pow(tmp % 10 , count);
tmp /= 10;
}
if(i == sum){
System.out.println(i);
}
}
}
写一个函数,返回参数二进制中 1 的个数
比如: 15 ---> 0000 1111 4个1
tip:将n的二进制与上(n-1)的二进制,直到n=0为止
写法一:
public class TestDemo4 {
public static void main(String[] args) {
//写一个函数返回二进制中 1 的个数
//比如: 15 0000 1111 ---> 4个1
int n = 7;
//初始化一个变量 count 计算按位与的次数(也就是1的个数)
int count = 0;
while(n != 0){
count++;
n = n & (n - 1);
}
System.out.println(count);
}
写法二:
public class TestDemo4 {
public static void main(String[] args) {
// for 循环 至少移动32次
int n = 7;
int count = 0;
for(int i = 0; i <= 31 ; i++){
if(((n >> i) & 1) != 0){
count++;
}
}
System.out.println(count);
}