【问题标题】:Create multiplication table with swift用swift创建乘法表
【发布时间】:2019-05-14 13:29:51
【问题描述】:

我是这里的初学者。一段时间以来,我一直被困在一个问题上。在操场上练习,我需要做一个乘法表。 基本上,如果我输入 3,我希望表格可以读取

1 2 3
2 4 6
3 6 9

我对这个循环感到困惑。有什么帮助吗?

到目前为止的代码

var x = 3
var width = 1

for x in 1...x {
    for width in 1...width {
        print(x, width*2)
    }
}

这段代码打印出来

1 2
2 2
3 2

【问题讨论】:

  • 如果输入5会怎样?
  • 那么就需要跨5,低于5..同上
  • 这是一个基本问题,但我似乎无法理解嵌套的 for 循环 @RakeshaShastri
  • 请发布您的代码
  • @OscarApeland 此代码打印 1 2 2 2 3 2

标签: swift for-loop


【解决方案1】:

你可以这样做。

func multiplicationTable(till limit: Int) {
    for i in 1...limit {
        for j in 1...limit {
            print(i * j, terminator: "\t")
        }
        print("")
    }
}

multiplcationTable(till: 5)

输出

 1    2   3   4   5   
 2    4   6   8   10  
 3    6   9   12  15  
 4    8   12  16  20  
 5    10  15  20  25  

【讨论】:

  • 完美 - 我会尽快接受答案。谢谢
  • 内循环可以替换为print((1...limit).map { String(i * $0) }.joined(separator: "\t"))
  • @vacawama 如果同一打印语句中有多个元素,则分隔符有效。检查this。哦,等等,你是这个意思吗? (编辑答案)
  • 感谢您的信息。消除分隔符并使用制表符作为终止符怎么样?
  • 他们的意思是print(i * j, terminator: "\t")
【解决方案2】:

如果简洁是最重要的:

let x = 3
let range = 1...x
for i in range {
    print(range.map { String(i * $0) }.joined(separator: "\t"))
}

【讨论】:

    【解决方案3】:

    您可以将乘法表存储在Ints 的二维数组中。首先,您可以使用从 1 到乘法表大小的数字填充第一行和第一列。那么对于剩余空位置的每个元素,只需将元素所在的同一行的第一个元素与该元素所在的同一列的第一个元素相乘即可。

    func multiplicationTable(ofSize n:Int) -> [[Int]] {
        var table = Array(repeating: Array(repeating: 0, count: n), count: n)
        table[0] = Array(1...n)
        for i in 1..<n {
            table[i][0] = i+1
            for j in 1..<n {
                table[i][j] = table[i][0] * table[0][j]
            }
        }
        return table
    }
    
    multiplicationTable(ofSize: 5).forEach { row in
        print(row,"\n")
    }
    

    输出:

    [1, 2, 3, 4, 5]

    [2, 4, 6, 8, 10]

    [3, 6, 9, 12, 15]

    [4, 8, 12, 16, 20]

    [5, 10, 15, 20, 25]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 2018-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多