• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

팩토리얼을 보고 습관적으로 재귀형태로 만들었는데 상관 없을까요?

20.08.12 18:11 작성 조회수 124

0

#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;

int func(vector<int> &v, int n){
	int tmp=n;
	if(n>1){
		func(v, n-1);
		//then divide n
		int i=2;
		while((i<=tmp)&&(tmp>1)){
			if(tmp%i==0){
				v[i]++;
				tmp=tmp/i;
			}else{
				i+=1;
			}
		}
	}
	return 0;
}

int main(){
	//freopen("input.txt","rt", stdin);
	int n, i;
	scanf("%d",&n);
	vector<int> v(n+1);
	func(v, n);
	printf("%d! = ",n);
	for(i=2; i<=n; i++){
		if(v[i]!=0) printf("%d ", v[i]);
	}
	return 0;
}

답변 1

답변을 작성해보세요.

0

안녕하세요^^ 

네. 상관없습니다. 영상에서 하는 방법과 동일한 코드나 다름없습니다.