循环语句与分支语句的实际运用方式

该程序集包含多个Java实现的算法,如查找5位回文数、计算完数、生成无重复数字的三位数、求数列前n项和、奇偶数求和、自由落体问题、蜗牛爬井问题、排除7的倍数和含7数字的求和以及数组排序。这些例子展示了基础算法和数学问题的解决方法。
摘要由CSDN通过智能技术生成
import java.util.Arrays;
import java.util.Scanner;

public class HomeWork1230 {
    //    1、【回文数】
//    打印5位数中的所有回文数,每行打印10个数。最后统计一下一共有多少个5位回文数。
//    注:回文数即正反读都是一个数,5位数的话,只要个位与万位相同,十位与千位相同就是一个回文数。
//
    public static void hws() {
        int ct = 0;
        for (int i = 10000; i < 100000; i++) {
            int a1 = i / 10000;
            int a2 = i / 10 % 10;
            int a4 = i / 1000 % 10;
            int a5 = i % 10;
            if (a2 == a4 && a1 == a5) {
                System.out.println("回文数是:" + i);
                ct++;
                if (ct%10==0){
                    System.out.println();
                }
            }
        }
        System.out.println("回文数总共有: " + ct);
    }

    //            2、【求完数】
//    一个数如果恰好等于它的所有真因子(即除了自身外的所有因数)之和,这个数就称为"完数"。
//
//    请编程求出1000 以内的所有完数。
//
    public static void qws() {
        for (int i = 1; i <= 1000; i++) {
            int sum = 0;
            for (int j = 1; j <= i / 2; j++) {
                if (i % j == 0) {
                    sum += j;
                }
            }
            if (sum == i) {
                System.out.println(i);
            }

        }
    }


    //            3、【求不重复数字】
//    有1、2、3、4一共四个数字,能组成多少个不相等且无重复数字的三位数?都是多少?
//
//    注:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的就可以了。
//

    public static void bcfsz() {

        int x = 0;
        for (int i = 1; i <= 4; i++) {
            for (int j = 1; j <= 4; j++) {
                for (int k = 1; k <= 4; k++) {
                    if (i == j || i == k || j == k) {
                        continue;
                    }
                    int num = i * 100 + j * 10 + k;
                    System.out.print(num + "\t");
                    x++;
                }
            }
            System.out.println();
        }
        System.out.println("一共有" + x + "个互不相同且无重复数字的三位数");
    }


    //            4、【根据输入求输出-求位数、逆序输出】
//    键盘录入一个正整数,请求:1.它是几位数?2.逆序打印出各位数字。
//
    public static void qsc() {
        System.out.println("请输入一个正整数");
        Scanner x = new Scanner(System.in);
        int q = x.nextInt();
        String a = Integer.toString(q);
        char[] ch = a.toCharArray();
        int y = ch.length;
        System.out.println(q + "是一个" + y + "位数");
        for (int i = ch.length -1; i >= 0; i--) {
            System.out.print(ch[i] + ",");
        }


    }

    //            5、【数列的前n项和】
//    有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13. 求出这个数列的前20项之和。
//
//    注:提前告诉你答案是32.66026079864164
//
    public static void slqh() {
        int a, b, c;
        double sl = 0.0;
        int a1 = 0, a2 = 1, a3 = 1;
        for (int i = 0; i < 20; i++) {
            a = a2 + a3;//求得分母
            b = a1 + a2;//求得分子
            sl += (double) a / b;//计算和
            a3 += a2;//加等a2的值
            c = a2;//临时变量储存
            a2 += a1;//加等a1的值
            a1 = c;//a1的值转换成c

        }
        System.out.println(sl);
    }


    //            6、【求奇数/偶数和】
//    求100以内的所有奇数/偶数的和。
//
    public static void qh() {
        int x = 0, y = 0;
        for (int i = 0; i < 101; i += 2) {
            x += i;
        }
        for (int i = 1; i < 101; i += 2) {
            y += i;
        }
        System.out.println("偶数的和为" + x);
        System.out.println("奇数的和为" + y);
        System.out.println("总和为" + (y + x));
    }


    //            7、【自由落体】
//    假如一个小球从100米高度自由落下,每次落地后就反跳回原高度的一半。那么求它在第10次落地时,共经过多少米?第10次反弹多高?
//
    public static void zylt() {
        double x = 100;//反弹
        double y = 100;//经过
        for (int i = 0; i < 10; i++) {
            x = x / 2;
            y = y + x+x;
            System.out.printf("%s--%s\n",x,y);
        }
        y=y-x;
        System.out.println("第十次反弹高度是:" + x );
        System.out.println("总共经过" + y);
    }


    //            8、【循环练习-蜗牛爬井】
//    井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。
//
    public static void wnpj() {
        float wn = 0f;
        float sj = 56.7f;
        int x = 0;
        while (wn <= sj) {
            x++;
            wn = wn + 5;
            if (wn >= sj) {
                break;
            } else {
                wn = wn - 3.5f;
            }
            System.out.println(wn);
        }
        System.out.println(x);
    }


    //            9、【求和-去除7倍数和包含7】
//    打印出1-100之间所有不是7的倍数和不包含7的数字, 并求和。
//
    public static void qcq() {
        int x = 0;
        for (int i = 1; i < 101; i++) {
            int b = i / 10 % 10;
            int c = i % 10;
            if (i % 7 == 0 || b == 7 || c == 7) {
                continue;
            }
            x += i;
            System.out.println(i);
        }
        System.out.println("去除后的和是:"+x);
    }

    //            10、【排序】
//    随机给十个数字,对它们进行排序。(可以给一个有10个整数元素的数组,然后对数组排序)

    public static void px(){
        int[]x=new int[10];
        for (int i = 0; i < x.length; i++) {
            x[i]=(int) (Math.random()*100);
        }
        Arrays.sort(x);
        System.out.println(Arrays.toString(x));
        //使用冒泡排序:每两个元素做对比  如果前者》后者 则交换位置
        //每一轮排序后 都会将最大值放到末尾
        for (int i = 0; i < x.length; i++) {
            for (int j = 0; j <x.length-1-i ; j++) {
                if (x[j]>x[j+1]){
                    int temp=x[j+1];
                    x[j+1]=x[j];
                    x[j]=temp;
                }
            }
            System.out.println("第"+(i+1)+"轮排序后的结果"+Arrays.toString(x));
        }
        System.out.println("最终排序的结果是:"+Arrays.toString(x));
    }

    public static void main(String[] args) {
//        hws();
//        qws();
//        bcfsz();
//        qsc();
//        slqh();
//        qh();
//        zylt();
//        wnpj();
//        qcq();
        px();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值