sjy366   7년 전

1부터 1000000000까지 출력은 다 나오는데 어디서 틀린걸까요....?

규칙은 계차수열 일반항 1 7 19 37 61 ....

3n^2-3n+1 썻구요.

이것보다 >= 일때 그와 같은 단계일꺼라 생각하고 풀었는데 아닌가요?

f52985   7년 전

n을 %d로 받은 것이 문제가 됩니다.

초기에 long long n을 지역변수로 선언하면 n에 쓰레기값이 들어가게 되는데,

이 상태에서 %d로 n을 입력받으면 4바이트만 입력받은 수가 들어가게 되고, 나머지 4바이트는 쓰레기 값이 그대로 남게 됩니다.

이 상태로 연산을 할 때 입력받은 n과는 다른값이 적용되고, 틀린 결과가 나오게 됩니다.


따라서 입력을 %lld로 받거나, n을 전역 변수로 선언하면 문제가 없을겁니다.

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