目录
- 双重循环
- 九九乘法表
- 打印长方形
- 打印平行四边形
- 打印三角形
- 打印菱形
- 打印空心菱形
- 三重循坏
- 百钱买百鸡
双重循环
九九乘法表
在Java中,你可以使用嵌套的for循环来打印九九乘法表。以下是一个简单的示例:
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "x" + i + "=" + i * j + "\t");
}
System.out.println();
}
}
}
这段代码的工作原理如下:
- 外层循环(由变量
i
控制)负责处理乘法表的每一行。因为九九乘法表有9行,所以i
的值从1到9。 - 内层循环(由变量
j
控制)负责处理每一行中的每一个乘法表达式。因为每一行的乘法表达式数量与行数相同,所以j
的值从1到i
。 - 在内层循环中,我们使用
System.out.print
来打印每一个乘法表达式,然后使用System.out.println
在每一行的末尾添加一个新行。 \t
是一个制表符,用于在每个乘法表达式之间添加一些空间,使输出更易读。
打印长方形
for(int j=1;j<=4;j++){//j:控制行数
//*********
for(int i=1;i<=9;i++){//i:控制*的个数
System.out.print("*");
}
//换行:
System.out.println();
}
打印平行四边形
for(int j=1;j<=4;j++){//j:控制行数
//加入空格:
for(int i=1;i<=(9-j);i++){//i:控制空格的个数
System.out.print(" ");
}
//*********
for(int i=1;i<=9;i++){//i:控制*的个数
System.out.print("*");
}
//换行:
System.out.println();
}
打印三角形
for(int j=1;j<=4;j++){//j:控制行数
//加入空格:
for(int i=1;i<=(9-j);i++){//i:控制空格的个数
System.out.print(" ");
}
//*********
for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
System.out.print("*");
}
//换行:
System.out.println();
}
打印菱形
for(int j=1;j<=4;j++){//j:控制行数
//加入空格:
for(int i=1;i<=(9-j);i++){//i:控制空格的个数
System.out.print(" ");
}
//*********
for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
System.out.print("*");
}
//换行:
System.out.println();
}
//下面三角形:
for(int j=1;j<=3;j++){//j:控制行数
//加入空格:
for(int i=1;i<=(j+5);i++){//i:控制空格的个数
System.out.print(" ");
}
//*********
for(int i=1;i<=(7-2*j);i++){//i:控制*的个数
System.out.print("*");
}
//换行:
System.out.println();
}
打印空心菱形
//上面三角形:
for(int j=1;j<=4;j++){//j:控制行数
//加入空格:
for(int i=1;i<=(9-j);i++){//i:控制空格的个数
System.out.print(" ");
}
//*********
for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
if(i==1||i==(2*j-1)){
System.out.print("*");
}else{
System.out.print(" ");
}
}
//换行:
System.out.println();
}
//下面三角形:
for(int j=1;j<=3;j++){//j:控制行数
//加入空格:
for(int i=1;i<=(j+5);i++){//i:控制空格的个数
System.out.print(" ");
}
//*********
for(int i=1;i<=(7-2*j);i++){//i:控制*的个数
if(i==1||i==(7-2*j)){
System.out.print("*");
}else{
System.out.print(" ");
}
}
//换行:
System.out.println();
}
三重循坏
百钱买百鸡
百钱买百鸡是一个经典的数学问题,源自中国古代的《张丘建算经》。问题描述如下:
- 一个农夫有100枚钱币,他需要买100只鸡。公鸡5枚钱币一只,母鸡3枚钱币一只,小鸡1枚钱币三只。请问,农夫应该如何买才能确保用完所有的钱币且买到100只鸡?
public class BaiQianMaiBaiJi {
public static void main(String[] args) {
for (int i = 0; i <= 20; i++) { // 公鸡最多可以买20只
for (int j = 0; j <= 33; j++) { // 母鸡最多可以买33只
int totalCost = 5 * i + 3 * j + (100 - i - j) / 3; // 计算总花费
if (totalCost == 100 && (100 - i - j) % 3 == 0) { // 检查是否满足条件
System.out.println("公鸡数量: " + i);
System.out.println("母鸡数量: " + j);
System.out.println("小鸡数量: " + (100 - i - j));
}
}
}
}
}
这个程序使用两个嵌套的for循环来遍历公鸡和母鸡的可能数量。然后,它计算出总花费,并与100枚钱币进行比较。如果总花费等于100枚钱币,并且小鸡的数量是3的倍数(即小鸡数量可以被3整除),那么就找到了一个解。这个解将输出公鸡、母鸡和小鸡的数量。