我需要测试从 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
您可以使用模数运算符 %
n % k == 0
当且仅当 n
是 k
的精确倍数时才计算 true。在初等数学中,这被称为除法的余数。
在您当前的方法中,您执行除法,结果将是
如果您使用整数除法,则始终为整数,或者
如果您使用浮点除法,则始终为浮点数。
这是测试可分性的错误方法。
您可以简单地使用 %
模运算符来检查整除性。
例如:n % 2 == 0
表示 n 可以被 2 整除,n % 2 != 0
表示 n 不能被 2 整除。
您可以使用 % 运算符来检查给定数字的整除性
检查是否给定的代码。否时可被 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
此代码似乎可以满足您的要求。
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)
或任何数量的东西。
我有同样的方法。因为我不明白如何使用 module(%) 运算符。
6 % 3 = 0 *这意味着如果您将 6 除以 3,您将没有余数,3 是 6 的因数。
现在你必须把它与你给定的问题联系起来。
if n % 3 == 0 *这就是说,如果我的数字(n)可被 3 整除,则余数为 0。
添加您的 then(print, return) 语句并继续您的
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!")
x=10000000000000000; b = str(x/(x-1)); b
。
对于小数字 n%3 == 0
会很好。对于非常大的数字,我建议先计算交叉和,然后检查交叉和是否是 3 的倍数:
def is_divisible_by_3(number):
if sum(map(int, str(number))) % 3 != 0:
my_bool = False
return my_bool
尝试这个 ...
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);
}
}
最简单的方法是测试一个数是否为整数是int(x) == x
。否则,大卫赫弗南所说的。
不定期副业成功案例分享
0 == 0*5