badro97   2달 전

while(a<=1||a>=10000) 이거넣으면 시간초과가 뜨고

빼면 정답이라는데 while(a<=1||a>=10000) 이거때문에 시간초과가 뜨는건가요?

1부터10000까지라는 조건하에 저게 들어가는게 맞는것같긴한데

왜 시간초과가 뜨는건가요

yukariko   2달 전

a의 초기화가 되어있지 않아 처음에 a에 어떤 값이 들어갈지 모르기 때문에 잘못된 코드입니다.

또한 a의 범위는 [1, 10000] 이기 때문에, 잘못된 입력을 체크할것이라면 a <= 1 이 아니라 a < 1 이 되어야 합니다.

badro97   2달 전

a의 초기화라면 먼저 scanf로 값을 a에 저장한 후에 while을 사용해야되는 것인가요??

그 시도도 해보았으나 제가 사용중인 Dev C++ 에서는 처음에 적은 코드로만 제값이 출력되네요 ㅠㅠ

  

#include <stdio.h>
 
int main(){
    int a,sum=0;
    scanf("%d",&a);

    while(a<1||a>10000)
    for (a;a>=1;a--){
        sum+=a;
    }
    printf("%d",sum);
}

이렇게 해봤는데 출력되는 값이 계속0이네요ㅠ

어디가 잘못된 건지 잘 모르겠습니다.

  

a의 범위는 [1, 10000] 이기 때문에, 잘못된 입력을 체크할것이라면 a <= 1 이 아니라 a < 1 이 되어야 합니다.

- 처음에 등호를 붙이지 않았으나 제대로 된 값이 나오지않아 등호를 붙여보았더니 제값이 나오더군요. 이유를 잘 모르겠습니다. ㅠ

아직 처음부터 배워가는중이라서..귀찮으시겠지만 답변해주시면 감사하겠습니다.

댓글을 작성하려면 로그인해야 합니다.