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 |
29 | 30 | 31 |
Tags
- 기계학습
- 숙명여자대학교 정보보안 동아리
- 자료구조 복습
- 풀이
- c
- lob
- SWEA
- 생활코딩
- PHP 웹페이지 만들기
- XSS Game
- 웹페이지 만들기
- 머신러닝
- The Loard of BOF
- Javascript
- WarGame
- hackerrank
- 백준
- Sookmyung Information Security Study
- 드림핵
- 숙명여자대학교 정보보안동아리
- Python
- siss
- BOJ Python
- hackctf
- HTML
- c++
- 파이썬
- C언어
- CSS
- BOJ
Archives
- Today
- Total
혜랑's STORY
[BOJ_C++] 5692번 : 팩토리얼 진법 본문
문제
풀이
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int factorial_number(string x) {
int num = 0, i = 0;
int fac[5] = { 1,2,6,24,120 };
for (int j = x.length()-1; j>=0; j--) {
num += fac[i++] * (x[j] - '0');
}
return num;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
string x;
while (1) {
cin >> x;
if (x == "0")
break;
printf("%d\n", factorial_number(x));
}
return 0;
}
- 입력을 받고 "0"이라면 종료한다.
- factorial_number() 함수는 문제에서 원하는 팩토리얼 진법 수를 10진수로 표현하는 함수이다.
- 문제의 조건에서 5자리가 최대라고 하였으므로 5!까지 계산한 값을 fac배열에 미리 넣어두었다.
- for문을 활용하여 x의 뒤부터 해당하는 자리의 팩토리얼 값을 곱한 뒤 num에 저장하였고 최종 num을 반환하였다.
결과
'무지성 공부방 > 알고리즘 해결' 카테고리의 다른 글
[BOJ_C++] 11816번 : 8진수, 10진수, 16진수 (0) | 2021.07.02 |
---|---|
[BOJ_C++] 14913번 : 등차수열에서 항 번호 찾기 (0) | 2021.07.02 |
[BOJ_C++] 1654번 : 랜선 자르기 (0) | 2021.06.27 |
[BOJ_C++] 9012번 : 괄호 (0) | 2021.03.26 |
[BOJ_C++] 2164번 : 카드2 (0) | 2021.03.11 |