JavaSE基础练习(循环、打印图形、九九乘法表、雉兔同笼、百鸡百钱、水仙花数等等)

JavaSE基础练习题

基本功练习

基础循环:
  • 请计算1-100所有数字的累加之和
   public static void main(String[] args) {
       //定义变量sum存储1-100的和;
       int sum = 0;
       //定义变量i记录循环次数,每次循环自增1;
       for(int i = 1; i<=100; i++){
           //把每次循环后的结果存到sum里;
           sum += i;
       }
       System.out.println(sum);
   }
  • 计算1-100奇数偶数之和分别是多少
	public static void main(String[] args) {
        //定义一个sum1存储1-100之间的偶数;
        int sum1 = 0;
        //定义一个sum2存储1-100之间的奇数;
        int sum2 = 0;
        for(int i = 1;i<=100;i++){
            //如果i能被2整除,说明是偶数,存在sum1里面,否则存在sum2里面;
            if(i%2==0){
                sum1 += i;
            }else{
                sum2 +=i;
            }
        }
        System.out.println("偶数的和是"+sum1+",奇数的和是"+sum2+",总和是"+(sum1+sum2));
    }
  • 计算1-100之间能被7整除的数字之和
   public static void main(String[] args) {
       //定义一个变量sum存和
       int sum = 0;
       
       for(int i = 1; i<= 100;i++){
           //如果循环数能被7整除,则加到sum里
           if(i%7==0){
               sum += i;
           }
       }
       System.out.println(sum);
   }
打印图形
  • 正方形
    关于矩形的打印,可以理解为对一行或一列循环的再次循环,比如5x5的正方形,是对一个一列数【j=5】的循环的再次循环5次。所以需要第二个for循环把第一个for循环包起来,使其重复5次(长方形同理)。
    public static void main(String[] args) {
       //定义行数i
       for(int i = 0;i < 5;i++){
           //定义列数j
           for(int j = 0;j < 5;j++){
               System.out.print("*"+"\t");
           }
           System.out.println();
       }
   }
  • 圆形
  • 三角形(等边、直角、倒三角)
  • 菱形

九九乘法表

    public static void main(String[] args) {
       //定义列数i
       for(int i = 1;i <= 9;i++){
           //定义行数j
           for(int j = 1;j <= i;j++){
                   System.out.print(j + "x" + i + "=" + (i*j) + "\t");
           }
           System.out.println();
       }
   }

幸运数

    public static void main(String[] args) {
        //定义一个随机数字lucknum
        int lucknum = (int) (Math.random() * 1000 + 1);
        //创建输入工具
        Scanner sc = new Scanner(System.in);

        for (int i = 0;; i++) {
            System.out.println("请输入你猜的数字:");
            //定义变量nextNum,接收用户输入的数字
            int nextNum = sc.nextInt();
            //判断用户输入的数字与随机数是否相等,如果相等则输出猜对了并结束循环
            if (nextNum == lucknum) {
                System.out.println("恭喜你,猜对了,你一共用了" + i + "次机会");
                break;
            } else if (nextNum < 1 || nextNum > 1000) {
                System.out.println("数字不合法,请输入1-1000之间的数字");
            } else if (nextNum > lucknum) {
                System.out.println("猜大了,往小一点猜");
            } else {
                System.out.println("猜小了,往大一点猜");
            }
        }
    }

雉兔同笼

今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
已知:鸡和兔子共有35只,鸡的只数x2 + 兔子的只数x4 =94

public static void main(String[] args) {
        //鸡兔总只数为35只,设鸡的只数为i,兔子的只数为j = 35-i
        //由脚的数量可知:i*2 + j*4 = 94;
        int i = 0;
        int j = 0;
        for(;i<35;i++){
            j = 35 - i;
            if((i*2) + (j*4) == 94){
                System.out.print("鸡的只数为" + i + "只," + "兔子的只数为" + j + "只");
            }
        }
    }

百鸡百钱

鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡, 问鸡翁、鸡母、鸡雏各几何?
已知:公鸡一只5元,母鸡一只3元,小鸡三只1元,100元正好买一百只鸡,一共可以买到多少只公鸡,多少只母鸡和多少只小鸡?

    public static void main(String[] args) {
        //已知公鸡+母鸡+小鸡共一百只,设公鸡x只,母鸡y只,那么小鸡为(100-x-y)只;
        //已知公鸡5元/只,所以x的最大值不会超过100/5=20只,同理母鸡不会超过33只;
        for(int x = 0;x<20;x++){
            for(int y = 0;y<33;y++){
                //因为小鸡钱数需要除以3会有余数,所以可以把所有参数乘3得到结果
                if(x + y +(100-x-y) == 100 && 15*x + 9*y + (100-x-y) == 300){
                    System.out.print("公鸡的只数为" + x + ",");
                    System.out.print("母鸡的只数为" + y + ",");
                    System.out.println("小鸡的只数为" + (100-x-y));
                }
            }
        }
    }

水仙花数

水仙花数指一个三位整数,其各位数的立方和等于该数本身。
例如:153=1x1x1 + 5x5x5 + 3x3x3

public static void main(String[] args) {
       
        int a,b,c;
        for(int i=100;i<=999;i++) {
            //取三位数的百位、十位、个位数字;
            a = i / 100;
            b = i / 10 % 10;
            c = i % 10;
            if(i==a*a*a+b*b*b+c*c*c){
                System.out.println(i);
            }
        }
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值