#include <stdio.h>
int n, r;
int factorial ( int n)
{
if ( n== 0 )
return 1 ;
else if ( n> 0 )
return n* factorial( n- 1 ) ;
return 0 ;
else
printf ( "음수는 계산할 수 없습니다\n " ) ;
}
int nPr ( int n, int r)
{
if ( n< 0 or r< 0 )
printf ( "음수는 입력할 수 없습니다\n " ) ;
return 0 ;
else if ( r> n)
printf ( "r은 n보다 클 수 없습니다\n " ) ;
return 0 ;
else if ( r== 0 )
return 1 ;
else
return ( n* factorial( n- 1 ) ) / ( ( n- r) * factorial( n- r- 1 ) ) ;
}
int nCr ( int n, int r)
{
if ( n< 0 or r< 0 )
printf ( "음수는 입력할 수 없습니다\n " ) ;
return 0 ;
else if ( r> n)
printf ( "r은 n보다 클 수 없습니다\n " ) ;
return 0 ;
else if ( r== 0 )
return 1 ;
else
return ( n* factorial( n- 1 ) ) / ( ( r& factorial( r) ) * ( ( n- r) * factorial( n- r- 1 ) ) ) ;
}
int main ( void )
{
int select;
printf ( "계산할 방식을 선택하세요\n " ) ;
printf ( "----------\n " ) ;
printf ( "1.팩토리얼\n 2.nPr\n 3.nCr\n " ) ;
printf ( "----------\n " ) ;
scanf ( "숫자 입력: %d\n " , & select) ;
switch ( select)
{
case 1 :
int n;
printf ( "팩토리얼 계산기\n " ) ;
scanf ( "n값을 입력하세요: %d" , & n) ;
printf ( "%d!=%d" , n, factorial( n) ) ;
break ;
case 2 :
int n,r;
printf ( "nPr 계산기\n " ) ;
scanf ( "n값을 입력하세요: %d" , & n) ;
scanf ( "r값을 입력하세요: %d" , & r) ;
printf ( "%dP%d=%d" , n, r,nPr( n, r) ) ;
break ;
case 3 :
int n,r;
printf ( "nCr 계산기\n " ) ;
scanf ( "n값을 입력하세요: %d" , & n) ;
scanf ( "r값을 입력하세요: %d" , & r) ;
printf ( "%dC%d=%d" , n, r,nCr( n, r) ) ;
break ;
default :
printf ( "다시 입력하세요\n " ) ;
}
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbiwgcjsKCmludCBmYWN0b3JpYWwgKGludCBuKQp7CiAgICBpZiAobj09MCkKICAgICAgICByZXR1cm4gMTsKICAgIGVsc2UgaWYgKG4+MCkKICAgICAgICByZXR1cm4gbipmYWN0b3JpYWwobi0xKTsKICAgICAgICByZXR1cm4gMDsKICAgIGVsc2UKICAgICAgICBwcmludGYoIuydjOyImOuKlCDqs4TsgrDtlaAg7IiYIOyXhuyKteuLiOuLpFxuIik7Cn0KCmludCBuUHIgKGludCBuLCBpbnQgcikKewogICAgaWYgKG48MCBvciByPDApCiAgICAgICAgcHJpbnRmKCLsnYzsiJjripQg7J6F66Cl7ZWgIOyImCDsl4bsirXri4jri6RcbiIpOwogICAgICAgIHJldHVybiAwOwogICAgZWxzZSBpZiAocj5uKQogICAgICAgIHByaW50ZigicuydgCBu67O064ukIO2BtCDsiJgg7JeG7Iq164uI64ukXG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIGVsc2UgaWYgKHI9PTApCiAgICAgICAgcmV0dXJuIDE7CiAgICBlbHNlCiAgICAgICAgcmV0dXJuIChuKmZhY3RvcmlhbChuLTEpKS8oKG4tcikqZmFjdG9yaWFsKG4tci0xKSk7Cn0KCmludCBuQ3IgKGludCBuLCBpbnQgcikKewogICAgaWYgKG48MCBvciByPDApCiAgICAgICAgcHJpbnRmKCLsnYzsiJjripQg7J6F66Cl7ZWgIOyImCDsl4bsirXri4jri6RcbiIpOwogICAgICAgIHJldHVybiAwOwogICAgZWxzZSBpZiAocj5uKQogICAgICAgIHByaW50ZigicuydgCBu67O064ukIO2BtCDsiJgg7JeG7Iq164uI64ukXG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIGVsc2UgaWYgKHI9PTApCiAgICAgICAgcmV0dXJuIDE7CiAgICBlbHNlCiAgICAgICAgcmV0dXJuIChuKmZhY3RvcmlhbChuLTEpKS8oKHImZmFjdG9yaWFsKHIpKSooKG4tcikqZmFjdG9yaWFsKG4tci0xKSkpOwp9CgppbnQgbWFpbiAodm9pZCkKewogICAgaW50IHNlbGVjdDsKICAgIHByaW50Zigi6rOE7IKw7ZWgIOuwqeyLneydhCDshKDtg53tlZjshLjsmpRcbiIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiMS7tjKnthqDrpqzslrxcbjIublByXG4zLm5DclxuIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS1cbiIpOwogICAgc2NhbmYoIuyIq+yekCDsnoXroKU6ICVkXG4iLCAmc2VsZWN0KTsKCiAgICBzd2l0Y2goc2VsZWN0KQogICAgewogICAgY2FzZSAxIDoKICAgICAgICBpbnQgbjsKICAgICAgICBwcmludGYoIu2Mqe2GoOumrOyWvCDqs4TsgrDquLBcbiIpOwogICAgICAgIHNjYW5mKCJu6rCS7J2EIOyeheugpe2VmOyEuOyalDogJWQiLCAmbik7CiAgICAgICAgcHJpbnRmICgiJWQhPSVkIiwgbiwgZmFjdG9yaWFsKG4pKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgMiA6CiAgICAgICAgaW50IG4scjsKICAgICAgICBwcmludGYoIm5QciDqs4TsgrDquLBcbiIpOwogICAgICAgIHNjYW5mKCJu6rCS7J2EIOyeheugpe2VmOyEuOyalDogJWQiLCAmbik7CiAgICAgICAgc2NhbmYoInLqsJLsnYQg7J6F66Cl7ZWY7IS47JqUOiAlZCIsICZyKTsKICAgICAgICBwcmludGYoIiVkUCVkPSVkIiwgbiwgcixuUHIobiwgcikpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAzIDoKICAgICAgICBpbnQgbixyOwogICAgICAgIHByaW50ZigibkNyIOqzhOyCsOq4sFxuIik7CiAgICAgICAgc2NhbmYoIm7qsJLsnYQg7J6F66Cl7ZWY7IS47JqUOiAlZCIsICZuKTsKICAgICAgICBzY2FuZigicuqwkuydhCDsnoXroKXtlZjshLjsmpQ6ICVkIiwgJnIpOwogICAgICAgIHByaW50ZigiJWRDJWQ9JWQiLCBuLCByLG5DcihuLCByKSk7CiAgICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAgIHByaW50Zigi64uk7IucIOyeheugpe2VmOyEuOyalFxuIik7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==
compilation info
prog.cpp: In function ‘int factorial(int)’:
prog.cpp:12:5: error: ‘else’ without a previous ‘if’
else
^~~~
prog.cpp: In function ‘int nPr(int, int)’:
prog.cpp:21:5: error: ‘else’ without a previous ‘if’
else if (r>n)
^~~~
prog.cpp:24:5: error: ‘else’ without a previous ‘if’
else if (r==0)
^~~~
prog.cpp: In function ‘int nCr(int, int)’:
prog.cpp:35:5: error: ‘else’ without a previous ‘if’
else if (r>n)
^~~~
prog.cpp:38:5: error: ‘else’ without a previous ‘if’
else if (r==0)
^~~~
prog.cpp: In function ‘int main()’:
prog.cpp:62:13: error: redeclaration of ‘int n’
int n,r;
^
prog.cpp:56:13: note: ‘int n’ previously declared here
int n;
^
prog.cpp:69:13: error: redeclaration of ‘int n’
int n,r;
^
prog.cpp:56:13: note: ‘int n’ previously declared here
int n;
^
prog.cpp:69:15: error: redeclaration of ‘int r’
int n,r;
^
prog.cpp:62:15: note: ‘int r’ previously declared here
int n,r;
^
stdout