이 코드는 2와 3으로 나눌 수있는 n1과 n2 사이의 모든 숫자 (임의로 생성됨)를 인쇄하지만 2로 나눌 수있는 숫자 만 인쇄하려고합니다. 어떻게해야합니까? 이?인쇄 번호는 2로 나눌 수 있지만 3으로 나눌 수 없습니까?
답변
"내가 2로 나누어 3로 나눌 수 없습니다"만일 지금 묻습니다.
!(i % 3 == 0)
지금, 당신이 경우에만 true를 돌려 부울 연산자를 필요
당신은 당신이 수 그것은 다음과 같이 보일 것입니다 (3)에 의해 나눌 수없는 것을 의무화 두 번째 조건이 필요합니다 두 조건이 모두 참입니다. 즉, 나는 독자에게 운동으로 떠날 것이다.는 (다른 사람이 이미 정답을했다,하지만 난 좀 더 자연스럽게 그것을 설명하려고합니다) 컴퓨터의
, 당신은 그들이 이해할 수있는 방식으로 문장을 작성해야합니다. 단어 "not", "and"및 "or"만 사용하여 "2로 분해하지만 3으로 나누기"와 같은 논리 문장을 좀 더 기본적인 버전으로 변환해야합니다. 귀하의 특정 경우에 말하고자하는 것은 the numbers that are divisible by 2 AND NOT divisible by 3
이미 알고 계시 겠지만, N%X!=0
은 (못생긴) N is divisible by X
을 작성하는 방법입니다. Java에서는 !
을 사용하여 not
및 &&
을 사용하여 and
을 말합니다.
이렇게하면 (N is divisible by 2) AND NOT (N is divisible by 3)
을 (N % 2 == 0) && !(N % 3 == 0)
이라고 쓸 수 있습니다.
if ((i % 2 == 0) && (i % 3 != 0)) {
System.out.println(i);
}
보다 효율적인 솔루션이 아닌 짝수 (초마다) 인쇄하는 것입니다 : 그러나 우리는 또한이 코드의 결과로 이해하는 NOT (X equal Y)
하지만 쉽게와 동등한 X not equal Y
연산자 (X!=Y
)를 가지고 3의 배수 (매 세 번째 숫자)
for (int i = 2; i < n; i += 6) {
System.out.println(i);
if (i + 2 < n)
System.out.println(i + 2);
}
모듈러스 연산은 고가이며,이 두 숫자 대신 매 6 개 루프의 각 반복으로 두 숫자를 출력한다.
나는이 솔루션을 좋아한다. 그러나 n이 이상하다면 어떻게 될까요? E.G. 'n = 3 '이라고합시다. 조건이 충족되지 않아 루프가 실행되지 않습니다. – Makoto
@Makoto가 사실입니다. 피터의 코드가 좋다. :) –
@Makoto 좋은 지적으로, 마지막 숫자를 인쇄하지 못했을 수도 있습니다. –
나는 ((i & 1) == 0
경우, 내가이 짝수이다) 최적의 성능을 위해에 사용 비트 연산자입니다. 짝수의 바이너리는 항상 끝이 0 자리이므로.
public class Example {
public static void main(String[] args) {
int n1 = 0;
int n2 = 100;
for (int i = n1; i < n2; i++) {
if (((i & 1) == 0)) {
if (i % 3 != 0) {
System.out.print(i + " ");
}
}
}
}
}
// Result:
// 2 4 8 10 14 16 20 22 26 28 32 34 38 40 44 46 50 52 56 58 62 64 68 70 74 76 80 82 86 88 92 94 98
예 3천5백34퍼센트 3 == 0, 우리가 더 나은 방법이있다 : 모든 숫자 (3 + 5 + 3 + 4) = 15, 15 % 3 == 0 합 ... 코드를 따라 해 봅시다.
n이 큰 경우 (예 : n2 = 99999999999999) 모든 숫자의 합계 사용은 (9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9) % 3 == 0, 비트 연산자는 매우 의미가 있습니다 :)
- 1. jQuery는 숫자를 나눌 수 있지만 십진수를 유지합니다.
- 2. 왜 datetime.timedelta를 float으로 나눌 수 없습니까?
- 3. 왜이 파이썬 목록을 나눌 수 없습니까?
- 4. 정확한 divage를 사용하여 페이지를 1/2로 완벽하게 나눌 수 있습니다.
- 5. 배열에있는 값의 반환 개수를 2로 균등하게 나눌 수 없습니다.
- 6. 카프카가 레코드를 나눌 수 있습니까?
- 7. 아이폰 애플리케이션에서 정수를 어떻게 나눌 수 있습니까?
- 8. 어떻게 이것을 나눌 수 있습니까?
- 9. 문자열을 사전으로 나눌 수 있습니까?
- 10. 배열을 어떻게 나눌 수 있습니까?
- 11. 숫자가 나눌 수 있는지 확인하십시오.
- 12. F # 함수 여기서 x는 2 또는 3으로 나눌 수 있지만 5는 아닙니다.
- 13. 왜 두 div에서 화면을 html로 나눌 수 없습니까?
- 14. 내가 0으로 나눌 곳을 볼 수 없습니까? 여기
- 15. 배열에서 모든 숫자를 3으로 나눌 수있는 함수를 만듭니다.
- 16. PHP 테이블 : 3으로 나눌 수없는 배열 마지막 행을 표시하지 않음
- 17. OpenGL : 왜곡되지 않은 텍스처가 2로 나눌 수없는 경우
- 18. 3으로 나눌 수있는 숫자를 새 배열에 추가하는 방법은 무엇입니까?
- 19. app.yaml을 여러 파일로 나눌 수 있습니까?
- 20. 나머지 숫자는 얼마나 자주 나눌 수 있습니까?
- 21. 어떻게 "더 많은 지점을 나눌 수 있습니까?"
- 22. 어떻게 asp.net에서 스크립트와 스타일을 나눌 수 있습니까?
- 23. codeigniter에서 student_no를 어떻게 나눌 수 있습니까?
- 24. 어떻게 제대로 사용 나눌 수 있습니다 BigDecimal를
- 25. 어떻게 mysql에서 varchar를 나눌 수 있습니까?
- 26. 어떻게 목록을 여러 벡터로 나눌 수 있습니까?
- 27. double이 나머지가없이 나눌 수 있는지 확인하십시오.
- 28. 어떻게 정규식을 여러 줄로 나눌 수 있습니까?
- 29. 어떻게 PHP에서 문자열에서 데이터를 나눌 수 있습니까?
- 30. 작업 후 숫자가 나눌 수 있는지 알아야합니다.
@SotiriosDelimanolis : 음 ... 30 ... – Makoto
'&&'와'! '연산자를 알고 계십니까? – Mephy
3 또는 9가 인쇄되지 않습니다. 2로 나눌 수있는 숫자 만 인쇄합니다! – AlexS