먼저 c언어로.

#include <stdio.h>

int factorial(int)

void main(){
int answer; //결과값 저장 변수
answer = factorial(7); //factorial 함수 호출
printf("결과값은 %d 입니다.\n", answer); //결과값 출력
}

int factorial(int n) {
printf("%d !(Factorial) \n", n); //재귀적 호출과정을 보여주기위한 출력문
if(n<=1)
return 1; //재귀적 호출 종료조건
else
return (n*factorial(n-1)); //재귀적 호출
}

다음은 C++로

#include <iostream>
using std::cout;
using std::endl;

class factorial {
public:
int call(int n) {
cout<<n<<"!(Factorial)"<<endl;
if(n<=1)
return 1;
else
return (n*call(n-1));
}

void show(int answer) {
cout<<"7!의 결과값은 "<<answer<<" 입니다"<<endl;
}
};

void main() {
int answer;
factorial fact;
answer = fact.call(7);
fact.show(answer);
}

java로는

class Recursion{
public int call(int n){
System.out.println(n+"!(factorial)");

if(n<=1)
return 1;
else
return (n*call(n-1));
}
public void print(int answer) {
System.out.println("7!의 결과값은 "+ answer + "입니다");
}
};

class Factorial{
public static void main(String[] args){
int answer;
Recursion re = new Recursion();
answer = re.call(7);
re.print(answer);
}
}


factorial을 3가지 programming language로 구현한것 입니다..
재귀 호출 방법으로 구현한 factorial를 했습니다..
이곳에 글을 옮기다 보니 들여 쓰기가 제대로 되지 않아서 ..
code를 보는데 어려울 것 같지만.... 간단하 code라 .. ^^