提问一:试问i j k 会输出多少次
for (i <- 1 to 5){
println(i) // 这句话会输出5次
for (j <- 1 to 10){
println(i, j) // 这句话会输出50次
for (k <- 1 to 10){
println(i,j,k) // 这句话会输出500次
}
}
}
提问二: 第一行 一个1 。第二行 两个2。第三行 三个3......
如图:
for(i <- 1 to 5){ //行 一共有5行
for(j <- 1 to i){ // 具体的一行中输出什么内容?
print(i)
}
println() // 换行
}
提问三:第一行 五个1 第二行 四个2 第三行 三个3....
如图:
for(i <- 1 to 5){ //行 一共有5行
for(j <- i to 5){ // 具体的一行中输出什么内容?
print(i)
}
println() // 换行
}
提问四: 公鸡1只 5钱;母鸡1只 3钱; 小鸡3只 1钱; 用100元买鸡 各可以买几只
/*
* 假设 公鸡 x
* 母鸡 y
* 小鸡 z
* 5x + 3y + z/3 = 100 (1)
* x + y + z = 100 (2)
* 暴力求解
* 0 <= x <= 100
* 0 <= y <= 100
* 0 <= z <= 100 === 100 - x - )
*
*/
for(x <- 0 to 20){
for(y <- 0 to 33){
var z = 100 - x - y
// 小鸡的数量一定是3的倍数
if(z % 3 == 0 && 5 * x + 3 * y + z/3 == 100){
println(x, y, z)
}
}
}
提问四:乘法口诀
for(i <- 1 to 9){
for(j <- 1 to i){
// printf(s"${j}×${i}=${i*j}")
printf("%d × %d = %-5d", j, i, i*j)
// %d 表示一个占位符 表示会以整数的格式输出对应的值
// %-3d 表示一个占位符 表示会以整数的格式输出对应的值 这是数字占3个字符的宽度 左对齐
}
println()
}