89번, 90번 모두 다른 숫자를 넣었을 때는 되는데 마지막 10 10 10을 넣으면 답이 이상하게 나와요ㅠㅠㅠ
89번
#include<stdio.h>
int main()
{
int a;
int r;
int n;
scanf("%d %d %d", &a, &r, &n);
for (int i=0; i<n-1; ++i)
{
a = a*r;
}
printf("%d", a);
return 0;
}
90번
#include<stdio.h>
int main()
{
int a;
int m;
int d;
int n;
scanf("%d %d %d %d", &a, &m, &d, &n);
for(int i=0; i<n-1; ++i)
{
a = a*m+d;
}
printf("%d", a);
return 0;
}
댓글 2
-
InformaticsTeacher
2025.08.16 18:06
-
InformaticsTeacher
2025.08.16 18:13
int보다 더 큰 자료형인 long long int를 활용할 수. 있습니다. 이 때는 %d 대신 모두 %lld 로 수정하면 됩니다.
가능함녀 C도 좋지만 C++로 cin, cout도 학습해보기를 추천합니다.
| 번호 | 제목 | 아이디 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 41 | [2657] 지문을 수정해 주세요 | gs25010 | 2025.12.04 | 0 |
| 40 |
정과세R4 에디토리얼 (n-쌍둥이 소수)
| gs23055 | 2025.12.04 | 6 |
| 39 |
[4283] 정과세 에디토리얼
| gs23009 | 2025.12.04 | 3 |
| 38 | [759] 데이터를 수정해 주세요. [1] | gs25001 | 2025.11.24 | 10 |
| 37 | [698] 데이터를 수정해 주세요. [1] | gs25001 | 2025.11.24 | 3 |
| 36 | [1280] 문제 지문을 수정해 주세요. [1] | gs25001 | 2025.11.24 | 5 |
| 35 | [10] [1] | mt2520510 | 2025.10.31 | 47 |
| 34 |
23085 이유찬 정과세 에디토리얼
| gs23085 | 2025.10.30 | 54 |
| 33 |
[4265] 정보과학세미나 에디토리얼
| gs23090 | 2025.10.30 | 58 |
| 32 |
Zobrist 문제 해설
| gs23003 | 2025.10.30 | 42 |
| 31 | [3254] 지문을 수정해 주세요. [1] | gs25084 | 2025.10.26 | 64 |
| 30 | [479] 데이터를 수정해 주세요. [1] | gs25001 | 2025.10.18 | 70 |
| 29 | [82] 지문을 수정해 주세요. [1] | gs25001 | 2025.10.18 | 75 |
| 28 | Python으로 문제를 풀 수 없도록 만드는 문제점이 존재합니다. [1] | gs25001 | 2025.10.17 | 87 |
| 27 | [121] [1] | 2025.10.17 | 74 | |
| 26 | [397] 스페셜 저지가 없습니다. [1] | gs25001 | 2025.10.16 | 85 |
| 25 | [138] 문제가 없습니다. [1] | gs25001 | 2025.10.16 | 76 |
| 24 | [132] [1] | gs25001 | 2025.10.16 | 70 |
| 23 | ID/PW 찾기 이메일이 안 와요 [1] | 2025.10.08 | 79 | |
| 22 | [3431] 로봇의 이동거리 #1 [1] | 2025.09.29 | 85 |
문제의 원인은
int자료형 범위 초과(overflow) 때문입니다.C 언어에서
int는 보통 32비트 정수로, 표현 가능한 범위는 약-2,147,483,648 ~ 2,147,483,647 입니다.
제시한 입력
10 10 10의 경우를 계산해 보면:a = 10 (시작값) r = 10 (등비) n = 10 (몇 번째 수) 계산: 10 × 10^(10-1) = 10 × 10^9 = 10^10 = 10,000,000,000그런데 10,000,000,000 > 2,147,483,647 이므로,
int에 저장할 수 없고, 값이 범위를 넘어가면서 잘못된(음수거나 엉뚱한) 값이 나옵니다.