1、对于for循环来讲可以解决所有数学中的一次方程式问题。有几个未知数就定义几个for循环,然后在if条件语句中,将方程式以&&的方式连接。例如: 我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意如下: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只小鸡,如果现在用100文钱可以买100只鸡,那么各有公鸡、母鸡、小鸡多少只。 题意有3个未知数,需要定义3个for循环,然后列出方程组 i+j+k=100,5i+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);
}
}
|