diff --git a/day03.md b/day03.md new file mode 100644 index 0000000..edf4c40 --- /dev/null +++ b/day03.md @@ -0,0 +1,416 @@ +```java +package qf.Test.day3; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class day03 { + + private static void demo1() { + //1、读入一个整数,表示一个人的年龄。 + // 如果小于6岁,则输出“儿童”, + // 6岁到13岁,输出“少儿” + // 14岁到17岁,输出“青少年”; + // 18岁到35岁输出“青年”; + // 36岁到50岁,输出“中年” + // 50岁以上输出“中老年”。 + System.out.println("请输入年龄:"); + Scanner scanner = new Scanner(System.in); + int age = scanner.nextInt(); + if (age <= 6) { + System.out.println("儿童"); + } else if (age <= 13) { + System.out.println("少儿"); + } else if (age <= 17) { + System.out.println("青少年"); + } else if (age <= 35) { + System.out.println("青年"); + } else if (age <= 50) { + System.out.println("中年"); + } else { + System.out.println("中老年"); + } + } + + private static void demo2() { + //计算销售总金额 + //图书批发商店的某本书的零售价是26.5元/本, + // 如果客户一次性购买100本以上(包括100本),则每本的价格打9折, + // 如果客户一次性购买500本以上(包括500本),则每本的价格打8折并返回1000元给客户, + // 请分别计算购买8本、150本、600本的应付金额是多少。要求购买书的数量从控制台输入。 + float price = 26.5f; + System.out.println("请输入要购买的数量:"); + Scanner scanner = new Scanner(System.in); + int num = scanner.nextInt(); + if (100 <= num) { + price = (float) (price * 0.9); + System.out.println("应付金额为:" + (price * num)); + } else if (500 <= num) { + price = (float) (price * 0.8); + System.out.println("应付金额为:" + ((price * num) - 1000)); + }else { + System.out.println("应付金额为:" + (price * num)); + } + } + + private static void demo3() { + //读入一个表示年份的整数,判断这一年是否是闰年。如何判断一个年份是否是闰年: + //.1 如果这个年份能够被4 整除,且不能被100 整除,则这一年是闰年。例如,1996 年是闰年,而相应的,1993 年就不是闰年。 + //.2 要能被400 整除,也是闰年。例如,2000 年是闰年,1900 年不是闰年。 + System.out.println("请输入年份:"); + Scanner scanner = new Scanner(System.in); + int year = scanner.nextInt(); + if(year%4 == 0 && year%100 != 0 || year%400 == 0) { + System.out.println(year + "是闰年"); + } else { + System.out.println(year + "不是闰年"); + } + } + + private static void demo4() { + //代码如下,运行完成之后的结果是:10是偶数。横线处补全代码 +// int a = 10; +// if (____________) { +// System.out.println(a + "是偶数"); +// } + int a = 10; + if (true) { + System.out.println(a + "是偶数"); + } + } + + private static void demo5() { + //以下代码运行结果? + //饿了么? + boolean flag = false; + int num = 10; + if (flag){ + num++; + } + num++; + if(num < 11){ + System.out.println("天生我材必有用"); + if (num > 5){ + System.out.println("千金散尽还复来"); + } + } + System.out.println("饿了么?"); + } + + private static void demo6() { + //读入一个整数,如果是1~5 之间,则分别输出5个福娃的名字,否则输出“”。 + System.out.println("请输入数字:"); + Scanner scanner = new Scanner(System.in); + int fuwa = scanner.nextInt(); + switch(fuwa){ + case 1: + System.out.println("贝贝"); + break; + case 2: + System.out.println("晶晶"); + break; + case 3: + System.out.println("欢欢"); + break; + case 4: + System.out.println("迎迎"); + break; + case 5: + System.out.println("妮妮"); + break; + default: + System.out.println("北京欢迎你"); + break; + } + } + + + private static void demo7() { + //读入一个整数,输出对应季度。3-5月(春季)6-8月(夏季)9-11月(秋季)12-2月(冬季) + System.out.println("请输入月份:"); + Scanner scanner = new Scanner(System.in); + int month = scanner.nextInt(); + if (3 <= month && month <= 5){ + System.out.println("春季"); + }else if (6 <= month && month <= 8){ + System.out.println("夏季"); + }else if (9 <= month && month <= 11){ + System.out.println("秋季"); + }else if ((0 < month && month <= 2) || month == 12){ + System.out.println("冬季"); + }else{ + System.out.println("月份不正确"); + } + } + + private static void demo8() { + //以下代码运行结果为?简述原因? + //输出40,不管if如何执行,最后都会把40赋值给b + int a = 20; + if (a == 20) { + int b = 30; + } + int b = 40; + System.out.println(b); + } + + private static void demo9(){ + //计算1+2+3+...+100 的和 + int sum = 0; + for(int i = 1;i <= 100;i++){ + sum +=i; + } + System.out.println("1+2+3+...+100 的和为:" + sum); + } + + private static void demo10(){ + //计算计算1+3+5+...+99的和 + int sum = 0; + for(int i = 1;i <= 100;i++){ + if(i%2 != 0){ + sum +=i; + } + } + System.out.println("1+3+5+...+99的和为:" + sum); + } + + private static void demo11(){ + //把10、11 两题用while 循环或do...while 循环改写。 + int sum10 = 0,i = 1; + while(i <= 100){ + sum10 +=i; + i++; + } + System.out.println("1+2+3+...+100 的和为:" + sum10); + int sum11 = 0,m = 1; + while(m <= 100){ + if(m%2 != 0){ + sum11 +=m; + } + m++; + } + System.out.println("1+3+5+...+99的和为:" + sum11); + + } + + private static void demo12(){ + //读入一个小于10 的整数n,输出它的阶乘n。 + System.out.println("请输入小于10的数字:"); + Scanner scanner = new Scanner(System.in); + int num = scanner.nextInt(); + int factorial = 1; + for(int i = 1;i <= num;i++){ + factorial *= i; + } + System.out.println(num + "的阶乘为:" + factorial); + } + + private static void demo13(){ + //求100 以内所有能被3 整除但不能被5 整除的数字的和。 + int num = 0; + for(int i = 1;i <= 100;i++){ + if(i%3 == 0 && i%5 != 0){ + num += i; + } + } + System.out.println("能被3整除但不能被5整除的数字的和为:" + num); + } + + private static void demo14(){ + //编程找出四位整数abcd 中满足 (ab+cd)(ab+cd)=abcd 的数 + for(int i = 1000;i <= 9999;i++){ + int ab = i/100; + int cd = i%100; + if((ab+cd) * (ab+cd) == i){ + System.out.println("满足条件的数是:" + i); + } + } + } + + private static void demo15(){ + //输出99 乘法表。 + for(int i = 1;i < 10;i++){ + for(int j = 1;j <= i;j++){ + System.out.print(j + "*" + i + "=" + (i*j) + "\t"); + } + System.out.println(); + } + } + + private static void demo16(){ + //计算2000年1月1日到2008年1月1日相距多少天。(注意闰年) + int day = 0; + for(int year = 2000;year < 2008;year++){ + if(year%4 == 0 && year%100 != 0 || year%400 == 0) { + day += 366; + } else { + day += 365; + } + } + System.out.println("2000年1月1日到2008年1月1日相距\t" + day + "天"); + } + + private static void demo17() { + //读入一个整数n,输出如下图形 + //n = 3 + // * + // + // *** + // + //***** + //n = 4 + // * + // + // *** + // + // ***** + // + //******* + System.out.println("请输入数字:"); + Scanner scanner = new Scanner(System.in); + int n = scanner.nextInt(); + for(int i = 1; i<=n; i++){ + //输出n-i个空格 + for(int j = 1; j<=n-i; j++){ + System.out.print(" "); + } + //输出2*i-1个星 + for(int j = 1; j<=2*i-1; j++){ + System.out.print("*"); + } + //换行 + System.out.println(); + } + } + + private static void demo18(){ + //求水仙花数。 + //提示:所谓水仙花数,是指一个三位数abc,如果满足a³+b³+c³=abc,则abc是水仙花数。 + int num = 0; + for(int i = 100;i <= 999;i++){ + int a = i/100; + int b = i/10%10; + int c = i%10; + int res = a*a*a + b*b*b + c*c*c; + if(res == i){ + num++; + } + } + System.out.println("水仙花数为:" + num); + } + + private static void demo19(){ +// 写一个方法add,两个整数作为参数,返回这两个整数的和。 +// public static int add(int a, int b){ +// return a + b; +// } + System.out.println(day03.add(10,11)); + } + + private static void demo20(){ + //写一个方法,整数n作为参数,输出这个整数的所有因子 + System.out.println("请输入整数:"); + Scanner scanner = new Scanner(System.in); + int n = scanner.nextInt(); + System.out.println(day03.factor(n)); + } + + private static void demo21(){ + //写一个方法,整数n作为参数,输出1+2+3+...+n 的和。 + System.out.println("请输入整数:"); + Scanner scanner = new Scanner(System.in); + int n = scanner.nextInt(); + System.out.println(day03.sum(n)); + } + + private static void demo22(){ + //写一个函数,整数n作为参数,输出n个HelloWorld + System.out.println("请输入整数:"); + Scanner scanner = new Scanner(System.in); + int n = scanner.nextInt(); + for (int i = 0; i < n; i++){ + day03.helloworld(); + } + } + + private static void demo23(){ + //写一个函数,整数n作为参数,输出这个n是几位数 + System.out.println("请输入整数:"); + Scanner scanner = new Scanner(System.in); + int n = scanner.nextInt(); + jiwei(n); + } + + private static void demo24(){ + //验证哥德巴赫猜想:任何一个大于6的偶数,都能分解成两个质数的和。要求输入一个整数,输出这个数能被分解成哪两个质数的和。 + //eg : 14 + //14=3+11 + //14=7+7 + System.out.println("请输入整数:"); + Scanner scanner = new Scanner(System.in); + int n = scanner.nextInt(); + if (n > 6 && n % 2 == 0) { + for (int i = 3; i <= n/2; i+=2) { + if (isPrime(i) && isPrime(n - i)) { + System.out.println("这个数能被分解成\t" + i + "和" + (n - i) + "\t两个质数的和"); + } + } + } else { + System.out.println("输入的" + n + "不是大于6的偶数"); + } + + } + public static void main(String[] args) { + demo24(); + } + + //两数相加 + public static int add(int a, int b){ + return a + b; + } + //获取n的全部因子 + public static String factor(int n) { + List list = new ArrayList(); + for (int i = 1; i < n; i++) { + if (n % i == 0) { + list.add(i); + } + } + return list.toString(); + } + //输出1+2+3+...+n 的和 + public static int sum(int n){ + int sum = 0; + for (int i = 1;i <= n;i++){ + sum += i; + } + return sum; + } + //输出n个HelloWorld + public static void helloworld(){ + System.out.println("HelloWorld"); + } + //输出n是几位数 + public static void jiwei(int n){ + int w = 0; + int num = n; + do{ + w++; + n = n /10; + }while(n!=0); + System.out.println(num + "是" + w + "位数"); + } + //判断是否为质数 + public static boolean isPrime(int n){ + for(int i = 2; i <= Math.sqrt(n); i++){ + if (n % i == 0){ + return false; + } + } + return true; + } +} + +``` +