亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在不使用嵌套循環的情況下顯示乘法表?

如何在不使用嵌套循環的情況下顯示乘法表?

慕森卡 2023-10-11 16:11:06
for i in range(1,11,1):  for j in range(1,11,1):    print(i*j, end="\t")  print()輸出1   2   3   4   5   6   7   8   9   102   4   6   8   10  12  14  16  18  203   6   9   12  15  18  21  24  27  304   8   12  16  20  24  28  32  36  405   10  15  20  25  30  35  40  45  506   12  18  24  30  36  42  48  54  607   14  21  28  35  42  49  56  63  708   16  24  32  40  48  56  64  72  809   18  27  36  45  54  63  72  81  9010  20  30  40  50  60  70  80  90  100是否可以在不使用嵌套循環的情況下顯示這個乘法表?如果是,怎么辦?我的意思是,我只想使用一個循環。
查看完整描述

3 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

你可以循環100次,然后用除法和模數來確定你當前的行和列,然后計算相應的乘積。


for i in range(0, 100):

    row = 1 + i // 10

    col = 1 + i % 10

    print(row * col, end="\t")

    if col == 10:

        print()


查看完整回答
反對 回復 2023-10-11
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

您可以在沒有任何顯式循環甚至關鍵字的情況下執行此操作for。


>>> from operator import mul

>>> from functools import partial

>>> 

>>> print("\n".join(map(lambda n: "".join(map("{:<3}".format, map(partial(mul, n), range(1,11)))), range(1,11))))

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 

4  8  12 16 20 24 28 32 36 40 

5  10 15 20 25 30 35 40 45 50 

6  12 18 24 30 36 42 48 54 60 

7  14 21 28 35 42 49 56 63 70 

8  16 24 32 40 48 56 64 72 80 

9  18 27 36 45 54 63 72 81 90 

10 20 30 40 50 60 70 80 90 100

但它仍然是 O(n^2)。不管你怎么寫,你都需要計算并輸出 O(n^2) 的乘積。


不過,最簡單的解決方案是像您已經擁有的那樣使用兩個循環。


查看完整回答
反對 回復 2023-10-11
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

如果其他函數可以為您執行嵌套循環,您可以使用itertools.product:


>>> from itertools import product

>>> for a, b in product(range(1, 11), repeat=2):

...     print(a * b, end="\t")

...     if b == 10:

...         print()

...

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

4   8   12  16  20  24  28  32  36  40

5   10  15  20  25  30  35  40  45  50

6   12  18  24  30  36  42  48  54  60

7   14  21  28  35  42  49  56  63  70

8   16  24  32  40  48  56  64  72  80

9   18  27  36  45  54  63  72  81  90

10  20  30  40  50  60  70  80  90  100


查看完整回答
反對 回復 2023-10-11
  • 3 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號