Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- level1
- 게임
- 개발
- 코딩
- 안드로이드 스튜디오
- 양방향 연결리스트
- C
- Flutter
- 풀이
- 틱택토
- 기초
- android studio tutorial
- 프로젝트
- tic-tac-toe
- dart
- programmers
- android studio
- c언어
- 코딩테스트
- 알고리즘
- Baekjoon
- Develop
- 플러터
- 안드로이드 튜토리얼
- 단방향 연결리스트
- IT
- 연결리스트
- 백준
- 안드로이드
- c언어 프로젝트
Archives
- Today
- Total
얼렁뚱땅 개발 블로그
[백준 Baekjoon] 1008번 - c언어 본문
반응형
문제
두 정수 A, B를 입력받고 A/B를 출력한다.
풀이
단순히 /를 이용하여 A/B를 계산하는 문제라고 생각하기 쉽지만 이 문제를 풀기 위해서는 실제 나눗셈을 하는 방식으로 풀어야 된다.
나눗셈을 계산할 때는 나머지가 0일 때까지 나머지를 계속 나눈다. C언어에서 나머지를 계산하는 방법은 % 이다.
[알고리즘]
1. A / B를 출력하고 A % B를 하여 나머지를 변수에 저장한다.
2. 나머지가 0이 아닐 때는 소수점 뒷자리 계산을 시작한다. 0일 때에는 계산을 종료한다.
3. 나머지가 계속 0이 될 때까지 나머지에 10을 곱하고 계산을 한다.
[예외 처리]
몫이 순환소수이거나 무환 소수 일 수도 있다. 그렇기 때문에 count라는 변수를 이용하여 소수점 뒤 자리 개수를 세준다. 만약 개수가 33개 일 때는 계산을 종료한다.
코드
#include <stdio.h>
int main() {
int a, b, mod, cnt = 0;
scanf("%d %d", &a, &b);
printf("%d", a / b);
mod = a % b;
if (mod != 0) {
printf(".");
while (mod != 0) {
cnt++;
if (cnt == 33) {
break;
}
mod *= 10;
printf("%d", mod / b);
mod %= b;
}
}
return 0;
}
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준 Baekjoon] 10998번 - c언어 (0) | 2020.10.13 |
---|---|
[백준 Baekjoon] 1001번 - c언어 (0) | 2020.10.13 |
[백준 Baekjoon] 1000번 - c언어 (0) | 2020.10.13 |
[백준 Baekjoon] 10172번 - c언어 (0) | 2020.10.12 |
[백준 BaekJoon] 10171번 - c언어 (0) | 2020.10.10 |
Comments