import java.util.Random;
import java.util.Scanner;
public class java_11_1 {
public static void main(String[] args) {
/*int ret = numberNine();
System.out.println("ret =" + ret);*/
/* printLeapYear();
* int a = 4;
int b = 7;
System.out.println(isPrimeNum(a));
System.out.println(isPrimeNum(b));
* */
/* printPrimeNUm();*/
/*fun();*/
/*printShuiXianHua();*/
/*int a = 25;
int b = 15;
System.out.println(maxDivisor(a,b));*/
/*System.out.println(add(10,20));
System.out.println(add(0.5,0.2,0.3));*/
int a = 10;
int b = 20;
int c = 30;
System.out.println(max(a,b,c));
}
//1. 编写程序数一下1 ~ 100中出现多少个数字9
public static int numberNine() {
//count存储1——100出现的9
int count = 0;
for (int i = 0; i < 100; i++) {
// 若9出现在个位
if (i % 10 == 9) {
count++;
System.out.print(i + ",");
}
//当9出现在十位
// 91/10=9
if (i / 10 == 9) {
count++;
System.out.print(i + ",");
}
}
return count;
}
//2.输出1000-2000之间的所有闰年
public static void printLeapYear() {
int count = 0;
for (int i = 1000; i <= 2000; i++) {
//所有闰年
if (i % 100 == 0) {
//世纪闰年
if (i % 400 == 0) {
count++;
System.out.print(i + ",");
}
} else {
//普通闰年
if (i % 4 == 0) {
count++;
System.out.print(i + ",");
}
}
}
System.out.println("一共有" + count + "个闰年");
}
//3. 输入一个数,判断是否是素数(只能被自己和1整除的数,1不是素数
public static boolean isPrimeNum(int num) {
if (num <= 1) {
return false;
}
//num >= 2
//判断聪开始到num 有没有因子
//从2开始依次判断i能否被num 整除
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
//4. 打印1-100的所有素数 重要!!! 引入标志位
public static void printPrimeNUm() {
//i从2-100之间判断是否是素数
int count = 0;
for (int i = 2; i <= 100; i++) {
//引入标志位判断i是否是素数
boolean flag = true;
//内层循环判断2-100之间有没有因子
for (int j = 2; j < i; j++) {
if (i % j == 0) {
//此时j是i 的因子
//i 不是素数
flag = false;
break;
}
}
//此时需要有一个记号,告知i是否是素数
if (flag) {
//此时 i 是个素数
count++;
System.out.println(i + ",");
}
}
System.out.println("1到100一共有" + count + "个素数");
}
//5.完成猜数字游戏,用户输入数字,判断该数字是大于、小于、还是等于随机生成的数字,等于的时候退出程序
public static void fun() {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
//生成一个1-100的随机数
int toGus = random.nextInt(100);
System.out.println(toGus);
while (true) {
System.out.println("请输入一个数字");
int num = scanner.nextInt();
if (num < toGus) {
System.out.println("小了!!!");
} else if (num > toGus) {
System.out.println("大了!!!");
} else {
System.out.println("对了!!!");
break;
}
}
}
//6. 求出100~999之间的所有水仙花数并输出
// 水仙花数是指一个三位数,其个位数的立方和确好等于该数本身
public static void printShuiXianHua() {
for (int i = 100; i < 999; i++) {
//要把一个数的个位、十位、百位分别拆出来
int geiWei = i % 10;
int baiWei = i / 100;
int shiWei = i / 10 % 10;
int sum = geiWei * geiWei * geiWei + shiWei * shiWei * shiWei + baiWei * baiWei * baiWei;
if (i == sum) {
System.out.println(i);
}
}
}
//7. 计算1/1 v 1/2 + 1/3 -1/4 +1/5 .....+1/99-1/100的值
public static double add(){
double ret = 0.0;
int flag = 1;
for (int i = 0; i <= 100; i++) {
ret = ret + 1.0 / i * flag;
flag = -flag;
}
return ret;
}
//8. 求两个正整数的最大公约数(辗转相除法——欧几里得算法)
public static int maxDivisor(int a,int b){
//找到a 和 b 的最大最小值
int max = a > b ? a : b;
int min = a < b ? a : b;
int i = max % min;
//当i== 0时,此时 min 为最大公约数
while (i != 0){
max = min;
min = i;
i = max % min;
}
return min;
}
//9. 在同一个类中,分别定义求两个整数和的方法 和三个整数和的方法
public static int add(int a,int b){
return a + b;
}
public static double add(double a,double b,double c){
return a + b + c;
}
//10.创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3
//要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算
public static int max(int a,int b){
return a > b ? a : b;
}
public static int max(int a, int b,int c){
//求 a 和 b 的最大值
int tmpMax = max(a,b);
int max = max(tmpMax,c);
return max;
}
}