Создать таблицу умножения с быстрым - PullRequest
0 голосов
/ 13 декабря 2018

Я новичок здесь.Я застрял на проблеме в течение некоторого времени.Тренируюсь на детской площадке и мне нужно составить таблицу умножения.в основном, если я введу 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

Ответы [ 3 ]

0 голосов
/ 13 декабря 2018

Вы можете сохранить таблицу умножения в двумерном массиве Int с.Во-первых, вы можете заполнить первую строку и первый столбец числами от 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]

0 голосов
/ 13 декабря 2018

Если краткость имеет первостепенное значение:

let x = 3
let range = 1...x
for i in range {
    print(range.map { String(i * $0) }.joined(separator: "\t"))
}
0 голосов
/ 13 декабря 2018

Вы можете сделать это следующим образом.

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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...