我需要测试从1到1000的每个数字是3的倍数还是5的倍数。我认为我这样做的方法是将数字除以3,如果结果是整数然后它将是3的倍数。与5.相同。
如何测试数字是否为整数?
这是我目前的代码:
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
答案 0 :(得分:180)
使用模数运算符%
n % k == 0
当且仅当n
是k
的确切倍数时,才会评估为真。在小学数学中,这被称为分裂的剩余部分。
在您当前的方法中,您执行除法,结果将是
这是测试可分性的错误方法。
答案 1 :(得分:2)
您只需使用%
模数运算符来检查可分性
例如:n % 2 == 0
表示n可以被2整除,n % 2 != 0
表示n不能被2整除。
答案 2 :(得分:0)
您可以使用%运算符来检查给定数字的可分性
检查给定否的代码。当没有时,可以被 3或5 整除。下面给出的不到1000:
n=0
while n<1000:
if n%3==0 or n%5==0:
print n,'is multiple of 3 or 5'
n=n+1
答案 3 :(得分:0)
此代码似乎可以满足您的要求。
for value in range(1,1000):
if value % 3 == 0 or value % 5 == 0:
print(value)
或类似
for value in range(1,1000):
if value % 3 == 0 or value % 5 == 0:
some_list.append(value)
或任何数量的东西。
答案 4 :(得分:0)
我有同样的方法。因为我不明白如何使用模块(%)运算符。
6%3 = 0 *这意味着如果你将6除以3,你将没有余数,3则是6。
现在你必须将它与你提出的问题联系起来。
如果n%3 == 0 *这就是说,如果我的数字(n)可以被3整除,剩下0个余数。
添加你的then(打印,返回)语句并继续
答案 5 :(得分:-2)
对于小数字n%3 == 0
会很好。对于非常大的数字,我建议先计算交叉和,然后检查交叉和是否是3的倍数:
def is_divisible_by_3(number):
if sum(map(int, str(number))) % 3 != 0:
my_bool = False
return my_bool
答案 6 :(得分:-2)
a = 1400
a1 = 5
a2 = 3
b= str(a/a1)
b1 = str(a/a2)
c =b[(len(b)-2):len(b)]
c1 =b[(len(b1)-2):len(b1)]
if c == ".0":
print("yeah for 5!")
if c1 == ".0":
print("yeah for 3!")
答案 7 :(得分:-4)
jinja2模板fizzbuz:
<form>
<ol>
{% for x in range(1,n+1) %}
{% set fizzbuzz_rpm = x %}
{% if x % 3 == 0 and x % 5 == 0 %}
{% set fizzbuzz_rpm="FizzBuzz" %}
{% elif x % 3 == 0 %}
{% set fizzbuzz_rpm="Fizz" %}
{% elif x %5 == 0 %}
{% set fizzbuzz_rpm="Buzz" %}
{% endif %}
<li>{{fizzbuzz_rpm}}</li>
{% endfor %}
</ol>
</form>
答案 8 :(得分:-5)
最简单的方法是测试数字是否为整数int(x) == x
。否则,大卫赫弗南说。
答案 9 :(得分:-5)
试试这个......
public class Solution {
public static void main(String[] args) {
long t = 1000;
long sum = 0;
for(int i = 1; i<t; i++){
if(i%3 == 0 || i%5 == 0){
sum = sum + i;
}
}
System.out.println(sum);
}
}