栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Java基础练习题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础练习题

java基础练习题

Java基础阶段的一些练习题,希望能有帮助

50L水,用7L桶装满,需要几次
public class Test01 {
    public static void main(String[] args) {
        int i=0;//定义第一桶水量
        int sum=0;//次数
        while(i<50){
            i+=7;
            sum+=1;
        }
        System.out.println(sum);
    }
}
输出1-100以内3的倍数或包含3的数3 69 12 13 …
    public static void main(String[] args) {
        //输出1-100以内3的倍数或包含3的数3 69 12 13 ...
        int num=1;
        while(num<100){
            if(num%10==3||num/10%10==3||num%3==0){
                System.out.print(num+"t");
            }num+=1;
        }
    }
模拟取款
public static void main(String[] args) {
                //取款功能
        int pwd=123456,inp;int i=3;
        do{
            if (i==0) {
                break;
            }
            Scanner sc=new Scanner(System.in);
            System.out.println("输入密码:");
            inp=sc.nextInt();
            int money = 0;//放在if里,得不到数据
            if(inp==pwd){
                while(true) {
                    Scanner sc1 = new Scanner(System.in);
                    System.out.println("请选择功能:n1、查看余额n2、存款" +
                            "n3、取款n4、退出系统");
                    System.out.println("请输入");
                    int num = sc1.nextInt();

                    switch (num) {
                        case 1:
                            System.out.println("当前余额" + money);
                            break;
                        case 2:
                            System.out.println("请输入存款金额:");
                            Scanner sc2 = new Scanner(System.in);
                            int save_money = sc2.nextInt();
                            money += save_money;
                            System.out.println("存入金额:" + save_money +
                                    "当前余额" + money);
                            break;
                        case 3:
                            System.out.println("请输入存款金额:");
                            Scanner sc3 = new Scanner(System.in);
                            int get_money = sc3.nextInt();
                            money -= get_money;
                            System.out.println("取出金额:" + get_money +
                                    "当前余额" + money);
                            break;
                        default:
                            System.out.println("退出");
                            System.exit(0);//退出循环
                            break;
                    }

                }
//                return;//默认死循环
            }else{
                System.out.println("继续");
                System.out.println("剩"+(i-1)+"次");
                i--;
            }

        }while(pwd!=inp);

    }
猜数游戏
public static void main(String[] args) {
        //猜数游戏
        //随机生成一个1-1000以内的数
        // 让用户输入,判断是否正确
        // 如果不正确,输出大了或小了
        Random rd = new Random();
        //random(1000):生成(0~1000]随机数
        Scanner sc = new Scanner(System.in);
        int num1 = rd.nextInt(1000);
//        System.out.println("答案:"+num1);
        System.out.println(num1);
        int num;//输入的数
        int i=0;//输入次数
        do{
            System.out.println("输入数字:");
            num=sc.nextInt();
            int a=0;//奖项
            i++;
            if(num==num1){
                System.out.println("输入正确");
                if(i==1)
                {a=1;}
                else if(i<=3&&i>1)
                {a=2;}
                else if(i<=10&&i>3)
                {a=3;}
                System.out.println("输入"+i+"次;"+a + "等奖");
            }else{
                System.out.println("输入错误,请重新输入:");
                System.out.println(num > num1 ? "输入过大" : "输入过小");

            }
        }while(num!=num1);
    }
输入一个数,输出到这个数之和以及这个数的阶来。
public static void main(String[] args) {
        //输入一个数,输出到这个数之和以及这个数的阶来。
        // 如输λ5, 输出总租: 15阶乘: 120
        System.out.println("输入数字:");
        Scanner sc=new Scanner(System.in);
        int inp=sc.nextInt();
        int sum=0,factorial=1;
        while(1<=inp){
            sum+=inp;
            factorial*=inp;
            inp--;
        }
        System.out.println(sum + "+" + factorial);
    }
输入一个数,倒序输出:123456->654321
public static void main(String[] args) {
        int num = 123456;
        while(num>0){
            System.out.print(num%10);
            num=num/10;
        }System.out.println();
 }
假设一张纸厚0.02厘米,玉龙雪山高5596 千米,将纸对折几次后能达到雪山的高度
public static void main(String[] args) {
        int h=559600000;
        double h1=0.02;
        int a=0;
        while(h1
            h1=h1*2;
            a++;
        }
        System.out.println("第"+a+"次到达"+h1);
    }
1~100所有质数的和
public static void main(String[] args) {
        //1~100所有质数的和
        int sum=0;//定义sum存储
        for(int i =2;i<=100;i++){
            //第一层循环:从2到100遍历
            for(int j=2;j
                if(i%j==0){
                    sum+=i;
                }//第二层选比i小的数,由2开始i%j取余,满足整除条件则累加
            }
        }System.out.println(sum);
    }
有1对兔子,长到第3个月开始每个月都生一对兔子,小兔子长到第3个月开始每个月都生一对兔子…请设计程序,输入第10个月多少对兔子?
public static void main(String[] args) {
        int a=1,b=1,n=0;
        for(int i=3;i<=10;i++){
            n=a+b;
            a=b;
            b=n;
        }
        System.out.println(n);
    }
大于200的最小质数
public static void main(String[] args) {
        //大于200的最小质数
        for (int x = 200; ; x++) {
            // 如何判断一个数是不是质数
            boolean flag = true; // 根据标记的状态是否改变,来判断某种情况是否发生
            for (int m = 2; m <= x - 1; m++) {
                if (x % m == 0) {
                    flag = false;
                    break;
                }
            }
        }
    	if(flag){
               System.out.println(x+"是质数");
               break;
         }
    }
输出,(三位)水仙花数,如:153=111+555+333
public static void main(String[] args) {
         //(三位)水仙花数:153=1*1*1+5*5*5+3*3*3
        //math.pow(底数,幂次)
        
        for(int i=100;i<1000;i++){//循环100~1000
            if(i==((i%10)*(i%10)*(i%10)+
                    (i/10%10)*(i/10%10)*(i/10%10)+
                    (i/100%10)*(i/100%10)*(i/100%10))){
                //满足条件打印
                System.out.println(i);
            }
        }
    }
鸡兔同笼
    public static void main(String[] args) {
        //鸡兔同笼:35头,94腿
        for(int i=0;i<24;i++){
            for(int j=0;j<47;j++){
                if(i+j==35&&4*i+2*j==94){
                    System.out.println(i +"兔鸡"+ j);
                }
            }
        }
    }
百元百蛋: 鸡蛋3个1元 鸭蛋1个3元 鹅蛋1个5元
public static void main(String[] args) {
        //百元百蛋 鸡蛋3个1元 鸭蛋1个3元 鹅蛋1个5元
        //先确定第一层
        //外层循环一次,内层循环所有
        for(int a=0;a<=300;a+=3){

            for(int b=0;b<=(100-a/3);b++){
                for(int c=0;c<=(100-a/3-b*3);c++){
                    if (((a/3+b*3+c*5)==100&&(a+b+c)==100)){
                        System.out.println("鸡蛋:"+a+" 鸭蛋:"+b+"鹅蛋:"+c);
                    }
                }
            }
        }
    }
打印三角形、菱形
    public static void main(String[] args) {
        //外层循环行数
        // 左上三角
        for (int i = 1; i <= 5; i++) {
            //内层循环每行打印的*的个数
            for (int j = 1; j <= 2*i-1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
      //左下三角
        for (int i = 1; i <= 5; i++) {
            //内层循环每行打印的*的个数
            for (int j = 1; j <= 11-2*i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
        //右上三角形
        for (int i = 1; i <= 5; i++) {
            //内层循环每行打印的*的个数

            for(int j=1;j<11-2*i;j++){
                System.out.print(" ");
            }
            for (int k = 1; k <=2*i-1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
        
        //右下三角形
        for (int i = 0; i < 5; i++) {
            for (int j = 1; j 
                System.out.print(" ");
            }
            for (int k = 0; k <9-2*i; k++) {
                System.out.print("*");
            }System.out.println();
        }
      //菱形
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= 10 - 2 * i; j++){
                System.out.print(" ");
            }
            for (int k = 1; k <= 4 * i - 3; k++){
                System.out.print("*");
            }
            System.out.println();
        }
        for (int i = 1; i <= 4; i++) {
            for (int j = 1; j <= 2 * i; j++){
                System.out.print(" ");
            }
            for (int k = 1; k <= 17 - 4 * i; k++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
完数:一个数恰好等于它的所有不同因子之和
public static void main(String[] args) {
        //完数
        for (int num = 1; num < 10000; num++) {
            int sum=0;
            for(int i=1;i
                if (num % i == 0) {
                    sum+=i;

                }
            }
            if(sum==num){
                System.out.println("完数:"+num);
            }
        }
    }
9*9乘法表
public static void main(String[] args) {
        
        //9*9乘法表
        for (int i = 1; i < 10; i++) {
              //先输出1到9的乘积
            for(int j=1;j<=i;j++){
                System.out.print(i + "*" + j + "=" + (i*j)+"t");
            }
            System.out.println();
        }
    }
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,10天后剩下一个,问小猴子第一天共摘了多少个桃子
public static void main(String[] args) {
        //定义第10天的桃子树梁
    	int a=1,sum=0;
        for (int i = 1; i <10; i++) {
            a=(a+1)*2;//在当天的基础上得到之前一天的量

        }
        System.out.println(a);
 }
猜拳游戏 用户通过输入1 2 3 表示石头剪刀布,3局2胜制
    public static void main(String[] args) {
        //猜拳游戏  用户通过输入1 2 3 表示石头剪刀布,3局2胜制
            Random rd = new Random();
            Scanner sc = new Scanner(System.in);
            // rd.nextInt(最大值);[0,最大值)
            //用户和电脑赢的次数
            int userWin = 0, comWin = 0;
            //3次循环游戏
            for (int i = 1; i <= 3; i++) {
                //只要有一方赢2次停止循环
                if (comWin == 2 || userWin == 2) {
                    break;
                }
                //接收用户输入
                System.out.println("请第" + i + "次出拳:1.石头 2.剪刀 3.布");
                int user = sc.nextInt();
                //电脑出拳
                int com = rd.nextInt(3) + 1;
                //判断用户输入是否有误
                if (user > 3 || user < 1) {
                    System.out.println("输入有误");
                    return;
                }
                //判断电脑出拳
                switch (com) {
                    case 1:
                        if (user == 1) {
                            System.out.println("平局!!!");
                        } else if (user == 2) {
                            System.out.println("电脑出的是石头,你输了!!!");
                            comWin++;
                        } else {
                            System.out.println("电脑出的是石头,你赢了!!!");
                            userWin++;
                        }
                        break;
                    case 2:
                        if (user == 1) {
                            System.out.println("电脑出的是剪刀,你赢了!!!");
                            userWin++;
                        } else if (user == 2) {
                            System.out.println("平局!!!");
                        } else {
                            System.out.println("电脑出的是剪刀,你输了!!!");
                            comWin++;
                        }
                        break;
                    case 3:
                        if (user == 1) {
                            System.out.println("电脑出的是布,你输了!!!");
                            comWin++;
                        } else if (user == 2) {
                            System.out.println("电脑出的是布,你赢了!!!");
                            userWin++;
                        } else {
                            System.out.println("平局!!!");
                        }
                        break;
                }
            }
            //最后比较分数
            if (userWin >= 2) {
                System.out.println("【你赢了】!!!");
            } else if (comWin >= 2) {
                System.out.println("【你输了】!!!");
            }else{
                System.out.println("【平局】!!!");
            }
    }
冒泡排序
public static void main(String[] args) {
        //冒泡排序
        int[] list = {23,16,98,10,2,31};
        System.out.println("排序前:");
        for (int i : list) {
            System.out.print(i+"t");
        }
        System.out.println();

        for (int i = 1; i <= list.length-1; i++) {
            for (int j = 1; j <= list.length-i; j++) {
                if (list[j-1]>list[j]){
                    //借助第三个变量交换元素
                    int temp = list[j];
                    list[j] = list[j-1];
                    list[j-1] = temp;
                }
            }
        }
        System.out.println("排序后:");
        for (int i : list) {
            System.out.print(i+"t");
        }
    }
23人报数1~23,数到3的人死,问最后一人在什么位置
public static void main(String[] args) {
        //n是参与游戏的总人数
        int n=23;
        int[] persons = new int[n];
        //创建1、2、3、4...n
        for (int i = 1; i < persons.length; i++) {
            persons[i - 1] = i;
        }
        int saveCount = 0;//目前数组中还存在的人数
        int index = 0;//我们要进行报的数(123、123、123...)

        while (true) {
            saveCount = 0;//记录目前存活的人数每次循环都被初始化
            for (int i = 0; i < persons.length; i++) {
                if (persons[i] != -1) {  //只有当前数组中不为-1的数才会去数数也就是index++
                    index++;
                    if (index == 3) {
                        index = 0;
                        //当计数器等于3的时候改变计数器的值并且把当前人的值改为-1
                        persons[i] = -1;
                    }
                }
                //如果数组中的值不为-1存活人数+1
                if (persons[i] != -1) {
                    saveCount++;
                }
            }
            //如果存活的人只剩下一个,退出循环
            if (saveCount == 1) {
                break;
            }
        }

        for (int i = 1; i <= persons.length; i++) {
            //遍历当前数组看哪一个位置的数组不为-1,就输出它的下标,也就是要找的那个人的编号
            //这种方式你会发现假如那个人是最后一个时会将这个位置的值从n置为0(比如n = 2、20)
            if (persons[i - 1] == i || persons[i - 1] == 0) {
                System.out.println("第 " + i + " 个人活了下来");
            }
        }
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030032.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号