zoukankan      html  css  js  c++  java
  • JAVA循环结构学校上机经常遇到的几题 笔记

    package homework.class4;
    
    import java.util.*;
    import java.util.stream.Collectors;
    import java.util.stream.Stream;
    
    public class HomeWorker {
        public static void main(String[] args) {
            //  1. 从键盘循环输入正整数,当输入-1时结束,统计输入的正整数的个数。
            // home();
            // 2. 从键盘输入一个整数,判断该数是否素数。素数是只能被1 和本身整除的数。可用穷举法来判断一个数是否是素数。
            // home1();
    //        输出100以内的所有素数
    //        home2();
    //        九九乘法表
    //        home3();
    //        分解质因数
    //        home4();
    //        6.输入某年某月某日,判断这一天是这一年的第几天?
    //        home5();
    //        7.输入一个数值,以反向的数值方式进行输出
    //        home6();
    //        8.输入一个数值,根据输入数值打印出如下结果
    //        如:输入3
    //        3
    //        33
    //        333
    //        home7();
    //        9 输入年份和月份 第六题的升级版
    //        9.输入年份和月份可以显示出当月一共有几天,年份必须大于0,月份必须为1-12之间。
    //        执行情况如下
    //        请输入年份:
    //        当年份输入错误后会出现提示,并要求重新输入年份
    //        提示内容为:
    //        您输入的年份有误!(年份必须大于0)
    //                请重新输入正确的年份:
    //
    //        请输入月份:
    //        当月份输入错误后会出现提示,并要求重新输入月份
    //        您输入的月份有误!(月份范围为1-12)
    //        请重新输入正确的月份:
    //
    //        所有输入完成后会显示当年当月有几天,随后询问用户是否要再次查询?
    //        如果用户选择是,则再次执行程序
    //        如果用户选择否,则结束程序
            home8();
    
        }
    
        private static void home8() {
            Scanner scan = new Scanner(System.in);
            while (true) {
    //        int year,month,day;
                int feb = 29;
                int[] months = {31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    //        List months = Stream.of(lists).collect(Collectors.toCollection(ArrayList::new));
    //        List months = new ArrayList<>(Arrays.asList(lists));
                int currentDay;
                System.out.println("输入年份(大于0):");
                int year = scan.nextInt();
                while (true) {
                    if (0 > year) {
                        System.out.println("您输入的年份有误!");
                        System.out.println("请重新输入正确的年份:");
                        year = scan.nextInt();
                        continue;
                    }
                    break;
                }
    
                // 判断是否是闰年
                // GregorianCalendar:判断年份是否是闰年的方法
                // 二月
                boolean leapYear = new GregorianCalendar().isLeapYear(year);
                feb = leapYear ? 29 : 28;
    //        months.add(1,feb);
    //        System.err.println(months.get(1));
                months[1] = feb;
    //            System.err.println(months[1]);
    
                System.out.println("请输入月份(1-12):");
                int month = scan.nextInt();
                while (true) {
                    if (1 > month || month > 12) {
                        System.out.println("您输入的月份有误!(月份范围为1-12)");
                        System.out.println("请重新输入正确的月份: ");
                        month = scan.nextInt();
                        continue;
                    }
                    break;
                }
    
    //        currentDay = (int) months.get(month-1);
                currentDay = months[month - 1];
                System.out.println("请输入输入日期:");
                int day = scan.nextInt();
                while (true) {
                    if (1 > day || day > currentDay) {
                        System.out.println("请输入输入日期,不大于" + currentDay + ":");
                        day = scan.nextInt();
                        continue;
                    }
                    break;
                }
    
                if (1 == month) {
                    System.out.println("这一天是这一年的第" + day + "天");
                    return;
                }
    
                int totalDay = 0;
                for (int i = 0; i < month - 1; i++) {
    //            totalDay += (int)months.get(i);
                    totalDay += months[i];
                }
                totalDay += day;
                System.out.println("这一天是这一年的第" + totalDay + "天");
                System.out.println("是否要再次查询?(y/n、任意键退出)");
                String str = scan.next();
                if (str.equals("y")){
                    continue;
                }
                break;
            }
    
        }
    
        private static void home7() {
            int n = 6,temp=n;
            for (int i = 1; i < n+1; i++){
                for (int j = 1;j<=i;j++){
                    System.out.print(n);
                }
                System.out.println();
            }
    
    
        }
    
    
        //    例如:输入54321   输出12345
    //    输入879     输出978
        private static void home6() {
            int inputVal = 54321, n;
            for (int i = inputVal; i > 0 ;i /=10){
                n = i % 10;
                System.out.print(n);
            }
        }
    
    
        private static void home5() {
    //        String str = "2019-12-13";
    //        String[] split = str.split("-");
    //        int year = Integer.parseInt(split[0]);
    //        int month = Integer.parseInt(split[1]);
    
            Scanner scan = new Scanner(System.in);
            System.out.println("输入年份:");
            int year = scan.nextInt();
            System.out.println("请输入月份(1-12):");
            int month = scan.nextInt();
            System.out.println("请输入输入日期:");
            int day = scan.nextInt();
            //判断是否是闰年
            //GregorianCalendar:判断年份是否是闰年的方法
            boolean leapYear = new GregorianCalendar().isLeapYear(year);
    
    //      2月
            int feb = leapYear?29:28;
    //        System.out.println(feb);
            int[] months={31,feb,31,30,31,30,31,31,30,31,30,31};
            int currentDay;
    
            while(true){
                if (1 > month || month > 12){
                    System.out.println("请输入月份(1-12):");
                    month = scan.nextInt();
                    continue;
                }
                currentDay = months[month-1];
                if (1 > day || day > currentDay){
                    System.out.println("请输入输入日期,不大于"+currentDay+":");
                    day = scan.nextInt();
                    continue;
                }
    
                break;
            }
    
            if (1 == month){
                System.out.println("这一天是这一年的第"+ day +"天");
                return;
            }
    
            int totalDay = 0;
            for (int i = 0; i < month-1; i++){
                totalDay += months[i];
            }
            totalDay += day;
            System.out.println("这一天是这一年的第"+ totalDay +"天");
    
        }
    
        private static void home4() {
            int n = 13;
            if (1 == n){
                System.out.println(n);
                return;
            }
            for (int i = 2; i <= n; i++){
                while (n % i == 0){
                    if (i == n){
                        System.out.println(n);
                        break;
                    }else {
                        System.out.print(i + "*");
                        n /= i;
                    }
                }
            }
        }
    
    
        private static void home3() {
            System.out.println("1		2		3		4		5		6		7		8		9	");
            System.out.println("--------------------------------------------------------------------------------");
            for (int i = 1; i < 10; i++){
                for (int j = i; j < 10;j++){
    //                if (i > j){
    //                    System.out.println("	");
    //                    continue;
    //                }
                    System.out.print(i + "*" + j + "=" + i*j + "	");
                }
                System.out.println();
                for (int k = 0; k < i; k++){
                    System.out.print("		");
                }
            }
        }
    
        /**
         * 判断一个数是不是素数:只能被1和本身整除
         * @param n
         * @return
         */
        private static boolean numberIsPrime(int n) {
            for (int i = 2; i <= Math.sqrt(n); i++) {
                if (n % i == 0) {
                    return false;
                }
            }
            return true;
        }
    
        private static void home2() {
            int tmp = 100;
            boolean flag = true;
    
    //        if(tmp<1){
    //            System.out.print("该数不是质数!");
    //            return;
    //        }
    //       System.out.println(Math.sqrt(tmp));
            if (1 == tmp){
                return;
            }
            for (int i = 2; i <= tmp; i++){
                if (numberIsPrime(i)){
                    System.out.print(i+"	");
                }
            }
    
        }
    
    
        private static void home1() {
            int tmp = 100;
            boolean flag = true;
    
            if(tmp==1){
                System.out.print("该数是质数!");
                return;
            }
    //        System.out.println(Math.sqrt(tmp));
            // 开根号
    //       for(int i = 2 ; Math.sqrt(tmp/2) >=i ; i ++ ){
            for(int i = 2 ; Math.sqrt(tmp) >= i ; i ++ ){
                if(tmp%i==0){
                    System.out.print("该数不是质数!");
                    flag = false;
                    break;
                }
            }
            if (false){
                System.out.print("该数是质数!");
            }
        }
    
        //  1. 从键盘循环输入正整数,当输入-1时结束,统计输入的正整数的个数。
        private static void home() {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入一个整数:");
            int val = scanner.nextInt();
            int count = 0;
            
            while (val != -1){
                count++;
                System.out.println("请输入一个整数:");
                val = scanner.nextInt();
            }
            System.out.println(count);
    
        }
    }
    作者:以罗伊
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    jquery ajax 跨域请求【原】
    纯js异步无刷新请求(只支持IE)【原】
    正则表达式高级用法【原】
    所有HTTP请求参数及报文查看SERVLET【原】
    AES加密【转】
    Object.prototype.toString.call() 区分对象类型
    js中的preventDefault与stopPropagation详解
    在项目中如何利用分页插件呢?
    Iframe 在项目中的使用总结
    在项目中那个少用if else 语句,精简代码,便于维护的方法(1)
  • 原文地址:https://www.cnblogs.com/my-ordinary/p/11578973.html
Copyright © 2011-2022 走看看