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
. 초등 수학에서 이것은 나눗셈의 나머지로 알려져 있습니다.
현재 접근 방식에서는 분할을 수행하고 결과는
- 정수 나눗셈을 사용하는 경우 항상 정수 또는
- 부동 소수점 나누기를 사용하는 경우 항상 부동 소수점입니다.
분할 가능성을 테스트하는 것은 잘못된 방법입니다.
답변
%
Modulus 연산자를 사용 하여 분할 가능성을 확인할 수 있습니다 .
예를 들어 : n % 2 == 0
n은 정확히 2로 나눌 수 있고 n은 정확히 2로 나눌 수 n % 2 != 0
없음을 의미합니다.
답변
나도 같은 접근 방식을 사용했습니다. module (%) 연산자를 사용하는 방법을 이해하지 못했기 때문입니다.
6 % 3 = 0 * 이는 6을 3으로 나누면 나머지가없고 3은 6의 인수임을 의미합니다.
이제 그것을 주어진 문제와 연관시켜야합니다.
if n % 3 == 0 * 이것은 내 숫자 (n)를 3으로 나눌 수있는 경우 0 나머지를 남기는 것입니다.
then (print, return) 문을 추가하고
답변
% 연산자 를 사용 하여 주어진 숫자의 다양성을 확인할 수 있습니다.
아니오가 주어 졌는지 확인하는 코드입니다. 아니오 일 때 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)
또는 여러 가지.
답변
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!")
답변
적은 수의 n%3 == 0
경우 괜찮습니다. 매우 큰 숫자의 경우 먼저 교차 합계를 계산 한 다음 교차 합계가 3의 배수인지 확인합니다.
def is_divisible_by_3(number):
if sum(map(int, str(number))) % 3 != 0:
my_bool = False
return my_bool