一些JAVA练习题

1.编程一个程序,计算今天是今年的第几天.
输入年 输入月 输入天

package day02.HM;

import java.util.Scanner;

//编程一个程序,计算今天是今年的第几天.
//       输入年  输入月  输入天
//输入年,判断该年2月有几天
//判断该月之前的每月有几天,循环到该月,所有天数加起来
public class days {
    public static void main(String[] args) {
        int day = 0;
        int sum = 0;
        System.out.println("请输入年");
        Scanner sc = new Scanner(System.in);
        int year = sc.nextInt();
        System.out.println("请输入月");
        Scanner sc2 = new Scanner(System.in);
        int month = sc.nextInt();
        for (int i = 1; i < month;i++) {
            switch ((i)) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    day = 31;
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    day = 30;
                    break;
                case 2:
                    if (year%4==0&&year%100!=0||year%400==0) {
                        day = 29;
                    }
                    day= 28;
                    break;
                default:
                    break;
            }
            sum +=day;
        }
        System.out.println(day);
        System.out.println("请输入日");
        Scanner sc3 = new Scanner(System.in);
        int days = sc.nextInt();days += day;
        System.out.println("是第"+days+"天");
    }
}

2.猴子吃桃问题。猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,
就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃
前一天剩下的一半零一个。到第 10 天在想吃的时候就剩一个桃子了,求第一天共
摘下来多少个桃子?

package day02.HM;
/*
猴子吃桃问题。猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,
就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃
前一天剩下的一半零一个。到第 10 天在想吃的时候就剩一个桃子了,求第一天共
摘下来多少个桃子?
 */
public class monkey {
    public static void main(String[] args) {
        int peach = 1;
        for (int i = 1; i < 10; i++) {
            peach = (peach+1)*2;
        }
        System.out.println(peach);
    }
}

3.一只青蛙在一口11米深的井底向上爬,白天向上爬3米,晚上向下滑2米,总共需要几天可以爬出.

package day02.HM;
/*
一只青蛙在一口11米深的井底向上爬,白天向上爬3米,晚上向下滑2米,总共需要几天可以爬出.
 */
public class fog {
    public static void main(String[] args) {
        int day = 0;
        int night = 0;
        int longs = 11;
        int i = 0;
        while(i!=11){
            i+=3;
            day++;
            System.out.println("这是第"+day+"个白天");

            if(i==11){
               break;
            }
            i-=2;
            night++;
            System.out.println("这是第"+night+"个晚上");
            System.out.println("今天是第"+day+"天");

        }
        System.out.println("共需要"+day+"天"+night+"夜");
    }
}

4.输出2–100之间的质数(只能被1和本身整除的,再没有其他因数的数)

package day02.HM;
//输出2--100之间的质数(只能被1和本身整除的,再没有其他因数的数)
public class number {
    public static void main(String[] args) {
        for (int i = 2; i < 100; i++) {
            for (int j = 2; j <=i; j++) {

                    if (i == j) {
                        System.out.println(i);
                    }
                if (i % j == 0) {
                    break;
                }


            }
        }
    }
}

5.设计一个对银行账户余额操作的程序
假设账号: int account=666666
密码:int password=111111
余额:int balance=1000
进入程序输出选择操作选项:
1.存款,2.取款,3.查询余额
要求使用Scanner交互式操作.
存款,取款,查询均需要输入账号密码,验证没有问题即可操作.
可以多次重复操作

package day02.HM;

import java.util.Scanner;

/*
设计一个对银行账户余额操作的程序
   假设账号: int account=666666
         密码:int password=111111
         余额:int balance=1000
	进入程序输出选择操作选项:
	1.存款,2.取款,3.查询余额
	要求使用Scanner交互式操作.
	存款,取款,查询均需要输入账号密码,验证没有问题即可操作.
	可以多次重复操作
 */
public class bank {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int balance = 1000;
        bank b = new bank();
        boolean b1 = b.enter();
        if (b1 == true) {
            while (true) {
                System.out.println("请选择你要执行的操作:1,取款;2,存款;3,查询余额,退出请按0");
                int choice = sc.nextInt();
                switch (choice) {
                    case 1:
                        System.out.println("请输入取款金额");
                        int take = sc.nextInt();
                        if (take <= balance) {
                            balance = balance - take;
                            System.out.println("取款成功,您当前余额为" + balance);
                        }
                        break;
                    case 2:
                        System.out.println("请输入存款金额");
                        int put = sc.nextInt();
                        balance = balance + put;
                        System.out.println("存款成功,您当前余额为" + balance);
                        break;
                    case 3:
                        System.out.println("您的余额为" + balance);
                        break;
                    default:
                        System.out.println("非法输入,交易已关闭");
                        break;
                }
                if(choice==0){
                    break;
                }
            }

        }
        else {
            System.out.println("账号密码输入错误!");
            b.enter();
        }
    }
    public boolean enter(){
        int account = 666666;
        int password = 111111;

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入账号");
        int acc = sc.nextInt();
        System.out.println("请输入密码");
        int pw = sc.nextInt();
        if (acc == account && pw == password) {
            return true;
        }
        return false;
    }
}
上一篇:hdu1698 Just a Hook (线段树区间更新 懒惰标记)


下一篇:《SQL经典实例》:8. 变换展示方式,层次关系