A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

欧阳伟伟

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 欧阳伟伟 初级黑马   /  2018-7-20 19:03  /  583 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1对于for循环来讲可以解决所有数学中的一次方程式问题。有几个未知数就定义几个for循环,然后在if条件语句中,将方程式以&&的方式连接。例如:
我国古代数学家张邱建在《算经》中出了一道百钱买百鸡的问题,题意如下:
5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只小鸡,如果现在用100文钱可以买100只鸡,那么各有公鸡、母鸡、小鸡多少只。
题意有3个未知数,需要定义3for循环,然后列出方程组 i+j+k=1005i+3j+1/3 *k=100
代码如下:
public class Chicken {
    public static void main(String[] args) {
        for (int i = 0; i < 20; i++) {
            for (int j = 0; j < 34; j++) {
                for (int k = 0; k < 100; k++) {
                    if (i + j + k == 100 && (15 * i + 9 * j + k == 300)) {
                        System.out.println("公鸡有" + i + "只,母鸡有" + j + "只,小鸡有" + k + "只.");
                    }
                }
            }
        }
    }
}
运行结果如下:
公鸡有0,母鸡有25,小鸡有75.
公鸡有4,母鸡有18,小鸡有78.
公鸡有8,母鸡有11,小鸡有81.
公鸡有12,母鸡有4,小鸡有84.
2发随机红包:主要思想是随机数范围的改变,且有2个注意点,当只有一个红包时直接返回总数就可以,当最后一个红包时返回剩下的钱就可以不需要再进行随机。
import java.util.Scanner;

public class Text {
    public static void main(String[] args) {
        System.out.println("要发出的金额");
        Scanner scanner = new Scanner(System.in);
        double jine = scanner.nextInt();
        System.out.println("要发出的数量");
        Scanner scanner1 = new Scanner(System.in);
        int geshu = scanner1.nextInt();
        ArrayList<Double> redList = new ArrayList<>();
        double leftjine = jine;
        for (int i = 1; i <= geshu; i++) {
            if (i == geshu) {
                redList.add(leftjine);
            } else if (i == 1) {
                double hongbao = Math.random() * jine % (jine + 1);
                leftjine = jine - hongbao;
                redList.add(hongbao);
            } else {
                double hongbao = Math.random() * leftjine % (leftjine + 1);
                leftjine = leftjine - hongbao;
                redList.add(hongbao);
            }
        }
        System.out.println(redList);
    }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马