어떤 숫자가 다른 숫자로 구분되는지 어떻게 확인합니까?
1부터 1000까지의 숫자가 3의 배수인지 5의 배수인지 테스트해야 합니다.
나는 이 코드를 파이썬 2.x에서 시도했습니다.
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
이 아이디어는 숫자를 나누고 결과가 정수인지 확인하는 것입니다.하지만, 저는 기대했던 결과를 얻지 못하고 있습니다.
숫자가 정수인지 테스트하려면 어떻게 해야 합니까?
2.x에서 이와 같은 나눗셈은 정수를 생성하여 나머지를 버립니다. 자세한 내용은 나눗셈을 부동 소수점으로 설정하는 방법을 참조하십시오. 세부사항을 위해 사단은 계속 0으로 반올림합니다.
3.x에서 나눗셈은 부동소수점 값을 생성할 것이다; 결과는 정수가 아닐 것이다.isinstance
검사가 실패합니다.정수 나눗셈이 다른 정수 대신 부동 소수점을 생성하는 이유를 참조하십시오.상세한 것은
분할 가능성만 검정하는 것이 아니라 정수 분할의 나머지가 필요한 경우 숫자의 나머지 분할 찾기를 참조하십시오.
계수 연산자를 사용하여 이 작업을 수행합니다.%
n % k == 0
다음과 같은 경우에만 true로 평가됩니다.n
의 정확한 배수입니다.k
초등 수학에서 이것은 나눗셈의 나머지라고 알려져 있습니다.
현재 접근 방식에서 분할을 수행하면 다음 중 하나의 결과를 얻을 수 있습니다.
- 만약 당신이 정수 나눗셈을 사용한다면, 항상 정수.
- 부동 소수점 분할을 사용하는 경우 항상 부동 소수점을 표시합니다.
그것은 분열성을 테스트하는 잘못된 방법입니다.
간단히 사용할 수 있습니다.%
분할을 확인하는 계수 연산자입니다.
예: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
저도 같은 접근법을 사용했습니다.모듈(%) 연산자를 사용하는 방법을 이해하지 못했기 때문입니다.
6 % 3 = 0 *이것은 6을 3으로 나누면 나머지가 없다는 것을 의미합니다. 3은 6의 계수입니다.
이제 당신은 그것을 주어진 문제와 연관시켜야 합니다.
만약 n % 3 == 0 *이것은 만약 내 숫자(n)가 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)
아니면 많은 것들.
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
괜찮을 겁니다.큰한 후 합니다.
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
그렇지 않다면, 데이비드 헤퍼넌이 말한 것.
언급URL : https://stackoverflow.com/questions/8002217/how-do-you-check-whether-a-number-is-divisible-by-another-number
'programing' 카테고리의 다른 글
소수(s,p) 또는 숫자(s,p)? (0) | 2023.06.26 |
---|---|
Unit-Testing의 assertRaises()를 NoneType 객체와 함께 적절하게 사용하는 방법 (0) | 2023.06.26 |
체크아웃을 취소하려면 어떻게 해야 합니까? (0) | 2023.06.21 |
null이 아니거나 빈 문자열이 아닌지 테스트할 호환 SQL (0) | 2023.06.21 |
오라클의 rownum처럼 mysql에서 행 번호를 가져올 수 있는 방법이 있습니까? (0) | 2023.06.21 |