#include <stdio.h> //전역 변수 선언. int multi; //전역 변수 초기화 multi =1; int fact(int a); int main() { int input; scanf("%d",&input); printf("%d",fact(input)); return 0; } int fact(int num) { if(num==1) { return multi; } else { multi *= num; } fact(num-1); } // 전역 변수가 필요하므로. 이코드는 사실상 거의 쓸모 없을 것 같다.
처음에 짠것. 마지막 주석에 달아놨듯이.. 쓸모 없어 보임;
#include <stdio.h> int fact(int num); int main() { int input; scanf("%d",&input); printf("%d",fact(input)); } int fact(int num) { if(num==1) { return num; } else { return fact(num-1)*num; } }
전역 변수 쓰지 않고 팩토리얼 선언하기. 근데 이거 사실 친구한테 물어본거 ... 아 내가 한 것 같지 않음 ㅜㅠ
#include <stdio.h> int fact(int num1) { int num2 = 1; int multi = 1; while(num2 <= num1) { multi *= num2; num2++; } return multi; } int main() { int input; scanf("%d",&input); printf("%d",fact(input)); }
재귀함수를 쓰지 않고 팩토리알 쓰기. 저기서 변수를 더 줄일 수 있을것 같은데 하기 힘들다.
재귀 쓰는 것 보다 더 오래걸렸음. -_-...
재귀 쓰는 것 보다 더 오래걸렸음. -_-...