작성
·
501
0
질문 -> //1. 2의 거듭제곱 반복문을 이렇게 만들어도 될까요?
//2. 2^1, 2^2까지의 총합: ... 입니다. 출력되는 말을 다르게 하고 싶은 데 if 문이 너무 길어집니다. if 문 짧게 하고 만들고 싶습니다.
public class _05_For {
public static void main(String[] args) {
//생각나서 만든 2의 거듭제곱 For 문
// 2의 0승부터 2의 10승까지의 합: 2047이 나와야 한다.
// 출력되는 문장들의 말을 다르게 하고 싶다 2^1, 2^2까지의 총합: 이런 식으로
int Sum = 0;
for (int s = 0; s < 11; s++) {
Sum += Math.pow(2, s); //거듭제곱을 계산하기 위해 Math.pow함수(?)를 가져옴
if(s == 0) {
System.out.println("2^0까지의 총합: " + Sum + " 입니다.");
} else if (s == 1) {
System.out.println("2^1까지의 총합: " + Sum + " 입니다.");
} else if (s == 2) {
System.out.println("2^2까지의 총합: " + Sum + " 입니다.");
}
// 2^10까지 표현하기에는 조건문이 너무 많아짐, 줄이는 방법을 알고 싶다.
}
System.out.println("2^의 1부터 10까지, 모든 수의 총합: " + Sum + " 입니다.");
}
}
답변 2
1
안녕하세요?
Math.pow() 를 이용한 거듭제곱 연산의 합 구하기 반복문의 접근, 아주 좋습니다. 약간만 응용하면 출력문도 반복문 속에서 딱 한 번만 출력하는 것으로 바꿀 수 있지요. 다음과 같이 코드를 변경해보았으니 어떤 부분이 바뀌었는지 확인해보시면 도움되실 것 같아요 😊
int Sum = 0;
for (int s = 0; s < 11; s++) {
Sum += Math.pow(2, s);
System.out.println("2^" + s + "까지의 총합: " + Sum + " 입니다.");
}
System.out.println("2^의 0부터 10까지, 모든 수의 총합: " + Sum + " 입니다.");
감사합니다.
0