16

数の最初の数倍を見つけることができるコードを書こうとしています。これは私の試みの1つです。

def printMultiples(n, m):
for m in (n,m):
    print(n, end = ' ')

を入れることfor m in (n, m):で、どんな数でもループを通過することがわかりましたm

def printMultiples(n, m):
'takes n and m as integers and finds all first m multiples of n'
for m in (n,m):
    if n % 2 == 0:
        while n < 0:
            print(n)

複数回検索したところ、Javaでサンプルコードしか見つからなかったので、それをPythonに変換しようとしましたが、結果が得られませんでした。range()このどこかでこの機能を使うべきだと感じていますが、どこにあるのかわかりません。

4

9 に答える 9

13

countの最初の倍数を見つけようとしている場合は、次のmように機能します。

def multiples(m, count):
    for i in range(count):
        print(i*m)

または、範囲を使用してこれを行うこともできます。

def multiples(m, count):
    for i in range(0,count*m,m):
        print(i)

これらは両方ともで倍数を開始することに注意してください0-代わりにで開始しmたい場合は、それだけオフセットする必要があります。

range(m,(count+1)*m,m)
于 2013-01-27T23:05:01.927 に答える
4

これはあなたが望むことをしますか?

print range(0, (m+1)*n, n)[1:]

m = 5の場合、n = 20

[20, 40, 60, 80, 100]

またはさらに良いことに、

>>> print range(n, (m+1)*n, n)
[20, 40, 60, 80, 100] 

Python3+の場合

>>> print(list(range(n, (m+1)*n, n)))
[20, 40, 60, 80, 100] 
于 2013-01-27T23:04:29.973 に答える
3

数学的概念に基づいて、私はそれを理解しています:

  • nで割った余りを持つすべての自然数は、0すべての倍数です。n

したがって、次の計算もソリューションとして適用されます(1から100までの倍数)。

>>> multiples_5 = [n for n in range(1, 101) if n % 5 == 0]
>>> multiples_5
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]

さらに読むために:

于 2019-01-23T16:43:33.853 に答える
2

5の最初の10倍について、次のように言います。

>>> [5*n for n in range(1,10+1)]
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
于 2013-01-27T23:18:07.887 に答える
1

できるよ:

def mul_table(n,i=1):
    print(n*i)
    if i !=10:
        mul_table(n,i+1)
mul_table(7)
于 2019-05-29T14:13:39.867 に答える
1

実行できるもう1つの方法は、リストを作成することです。これは、7の最初の20倍を取得するための私の例です。

入力:

multiples_7 = [x * 7 for x in range(1,21)] 

print(multiples_7)

出力:

[7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98, 105, 112, 119, 126, 133, 140]
于 2021-09-24T05:07:34.170 に答える
0
def multiples(n,m,starting_from=1,increment_by=1):
    """
    # Where n is the number 10 and m is the number 2 from your example. 
    # In case you want to print the multiples starting from some other number other than 1 then you could use the starting_from parameter
    # In case you want to print every 2nd multiple or every 3rd multiple you could change the increment_by 
    """
    print [ n*x for x in range(starting_from,m+1,increment_by) ] 
于 2017-01-18T15:59:21.520 に答える
0

これがあなたが探しているものなら-

与えられた数と限界の間のすべての倍数を見つけるため

def find_multiples(integer, limit):
    return list(range(integer,limit+1, integer))

これは戻るはずです-

Test.assert_equals(find_multiples(5, 25), [5, 10, 15, 20, 25])
于 2020-07-26T08:31:19.160 に答える
0

5の最初の10倍数については、次のように実行できます。

import numpy as np
#np.arange(1,11) array from 1 to 10 
array_multipleof5 = [5*n for n in np.arange(1,11)]
array_multipleof5 = np.array(array_multipleof5)
print(array_multipleof5)
于 2021-08-02T23:37:59.170 に答える