반응형
https://www.acmicpc.net/problem/5692
구현문제였습니다.
📕 풀이방법
📔 입력 및 초기화
테스트 케이스의 수가 주어지지 않았기 때문에 최대한 빠르게 입출력을 위해 c library와의 동기화를 끊어줍니다.while loop를 수행하면서 입력받습니다.
📔 풀이과정
getFacNum함수 내부에는 getFac함수가 동작합니다. getFac은 팩토리얼 수를 구한 결과를 반환하는 함수며 이 값을 토대로 팩토리얼 진법의 수를 getFacNum함수에서 반환하게 됩니다.
📔 정답출력
getFacNum함수의 결과값을 출력합니다.
📕 Code
#include <bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
int getFac(int num){
int tmp = 1;
for(int i = 1; i <= num; i++)
tmp *= i;
return tmp;
}
int getFacNum(int num) {
int tmp = num, sum = 0, cnt = 1;
while(tmp){
sum += tmp % 10 * getFac(cnt++);
tmp /= 10;
}
return sum;
}
int main(){
fastio;
while(1){
int n, ans = 0;
cin >> n;
if(!n) break;
cout << getFacNum(n) << '\n';
}
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 6060 : Wheel Rotation (0) | 2021.12.19 |
---|---|
(C++) - 백준(BOJ) 5751 : Head or Tail (0) | 2021.12.18 |
(C++) - 백준(BOJ) 5607 : 問題 1 (0) | 2021.12.16 |
(C++) - 백준(BOJ) 5235 : Even Sum More Than Odd Sum (0) | 2021.12.15 |
(C++) - 백준(BOJ) 23825: SASA 모형을 만들어보자 (0) | 2021.12.14 |