자바 프로그래밍 연습문제 질문드립니다.


HW#2_1 최대값이 제한된 1~n까지의 합

사용자에게 숫자 max를 입력 받고, 1~n까지의 합이 입력 받은 max보다 작은 최대 n을 구한다.

Ex) 최대값을 입력하세요 : 100 1~13까지의 합은 91로 최대값 100을 넘지 않습니다. 따라서 n = 13.

현재 제가 짠 코드는(미완성)

package zzz; import java.util.*; public class first

{ public static void main(String[] args) 
{Scanner a = new Scanner(System.in);
    System.out.print("최대값을 입력하시오 : ");
    int max = a.nextInt();
    int z=0;
    int b;
    for(int i=1;i<=b;i++)
    z=z+i;
    if(z<max);

    System.out.print(b);
    }

}

저는 이러면 값이 나와야 한다고 생각하는데 오류만 뜨네요 ㅠㅠ
아예 방식이 잘못된건가요??
  • 2018년 04월 13일에 작성됨

  • b의 값이 초기화 되어 있지 않아서 오류가 나는 것 같아요.    주동혁   2018.4.13 17:16     
조회수 75


Hashcode banner summercoding

2 답변


for의 가운데 인자를 z <= max 로 바꿔보는건 어떤가요?

근데 문제가 1~n 합이 max를 넘지않는것(이하)인지, max보다 작은 것(미만)인지 모호하네요

  • 2018년 04월 13일에 작성됨


for (int i = 1; i < max; i++) {
   z += i;
   if (z >= max) {
     break;
   } else {
      b = i;
   }
}

System.out.print(b);

이러면 될 것 같은데요.

그리고 int b = 0 으로 초기화해주세요.

  • 2018년 04월 13일에 작성됨
    안드로이드 애플리케이션 개발자

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close