Ich muss testen, ob jede Zahl von 1 bis 1000 ein Vielfaches von 3 oder ein Vielfaches von 5 ist. Ich dachte, ich würde dies tun, indem ich die Zahl durch 3 dividiere, und wenn das Ergebnis eine ganze Zahl ist, würde es dies tun sei ein Vielfaches von 3. Gleiches gilt für 5.
Wie teste ich, ob die Zahl eine ganze Zahl ist?
Hier ist mein aktueller Code:
n = 0
s = 0
while (n < 1001):
x = n/3
if isinstance(x, (int, long)):
print 'Multiple of 3!'
s = s + n
if False:
y = n/5
if isinstance(y, (int, long)):
s = s + n
print 'Number: '
print n
print 'Sum:'
print s
n = n + 1
Antworten:
Sie tun dies mit dem Moduloperator,
%
bewertet true genau dann, wenn
n
es sich um ein genaues Vielfaches von handeltk
. In der Elementarmathematik wird dies als Rest einer Division bezeichnet.In Ihrem aktuellen Ansatz führen Sie eine Division durch und das Ergebnis ist entweder
Es ist einfach der falsche Weg, um die Teilbarkeit zu testen.
quelle
0 == 0*5
Sie können einfach den
%
Modulus-Operator verwenden, um die Teilbarkeit zu überprüfen.Zum Beispiel:
n % 2 == 0
bedeutet, dass n genau durch 2 teilbar ist undn % 2 != 0
dass n nicht genau durch 2 teilbar ist.quelle
Ich hatte den gleichen Ansatz. Weil ich nicht verstanden habe, wie man den Moduloperator (%) verwendet.
6% 3 = 0 * Dies bedeutet, wenn Sie 6 durch 3 teilen, haben Sie keinen Rest, 3 ist ein Faktor von 6.
Jetzt müssen Sie es auf Ihr gegebenes Problem beziehen.
if n% 3 == 0 * Dies bedeutet, wenn meine Zahl (n) durch 3 teilbar ist und ein Rest von 0 übrig bleibt.
Fügen Sie Ihre then-Anweisung (print, return) hinzu und fahren Sie mit Ihrer Anweisung fort
quelle
Sie können den Operator% verwenden Sie die Teilbarkeit einer bestimmten Zahl überprüfen
Der Code, um zu überprüfen, ob nein. ist teilbar durch 3 oder 5 wenn nein. weniger als 1000 ist unten angegeben:
quelle
Dieser Code scheint das zu tun, wonach Sie fragen.
Oder so ähnlich
Oder eine beliebige Anzahl von Dingen.
quelle
quelle
x=10000000000000000; b = str(x/(x-1)); b
im Python-Interpreter.Für kleine Zahlen ist
n%3 == 0
das in Ordnung. Für sehr große Zahlen schlage ich vor, zuerst die Quersumme zu berechnen und dann zu prüfen, ob die Quersumme ein Vielfaches von 3 ist:quelle
Versuche dies ...
quelle
jinja2 template fizzbuz:
quelle
Am einfachsten ist es zu testen, ob eine Zahl eine ganze Zahl ist
int(x) == x
. Ansonsten, was David Heffernan gesagt hat.quelle