Чтобы выровнять столбцы, вам необходимо полностью изменить подход.В настоящее время printMultiples()
не может знать, сколько пробелов ставить после каждого числа, потому что не знает, сколько раз он будет вызываться во внешнем цикле while
.
Что вы можете сделать:
- создайте двумерный массив строковых представлений для каждого кратного числа (пока ничего не печатая) - для этого будет полезна функция
str()
- для каждого столбца, проверьте длинусамое длинное число в этом столбце (оно всегда будет последним) и добавьте одну
- печать каждой строки, добавив соответствующее количество пробелов после каждой строки, чтобы соответствовать количеству пробелов, необходимых для этого столбца
Более простой подход, если вы только заинтересованы в столбцовом выводе, а не в точном интервале, заключался бы в печати каждого числа с достаточным пространством после него, чтобы вместить наибольшее число, которое вы ожидаете вывести.,Таким образом, вы можете получить:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
(Обратите внимание, что после каждого числа в первых трех столбцах есть три пробела, даже если вам не нужны все три пробела.)
Изменение существующегоКод сделать это было бы проще.Подробнее см. Формат строки синтаксиса .