2017-10-17 16 views
-2

의 경우 반환 0 나는 코드의 일반적인 설명이 필요?복귀 한 요인

사례 2) 숫자가 1보다 크면 숫자는 return fact이며 이는 계승 값입니까?

결과가 성공적으로 생성 되려면 return 1return 0이 둘 다 있다는 것을 알고 있습니다.

그런데 왜 0을 반환 할 수 없습니까?

double factorial(int num) 
    { 
     int fact = 1; 
     int i = 1; 
     if (num == 0) 
      return 1; 
     else 
      while (num >= i) 
      { 
       fact = fact*i; 
       i++; 
      } 
     return fact; 
+0

상태를 반환하지 않으면 발신자가 사용할 수있는 값이 반환됩니다. – NathanOliver

+0

"그런데 왜 0을 반환 할 수 없습니까?이 경우에는? _"무엇? 0이 아닌 수의 계승이 0과 같다고 말씀하시는 겁니까? 계승 작동 원리를 이해합니까? 또한, 음수의 계승은 무엇입니까? 당신의 기능도 그것들을 받아들입니다. –

+0

@ AlgirdasPreidžius C++을 처음 접했으니 나에게 나쁜 말을하지 마세요 .. –

답변

0
#include <iostream> 

using namespace std; 

int factorial(int num)    //I changed this to return int since you are taking int and int*int will always be int 
    { 
     int fact = 1;    
     //int i = 1;    //dont need this 
     if (num == 0) 
      return fact;   //You can just say return `fact` or `return 1` - i like to make my code readable - s I used `return fact` 
            //I also prefer to set the value of fact as 1 here and return the 1 at bottom so we only have one return statement 
            //but thats just me - having 2 return statements should be fine if used wisely 

      /*while (num >= i)  //thispart was wrong i reedited it into a better and more efficient code below 
      { 
       fact = fact*i; 
       i++; 
      }*/ 
     else 
      { 
       while(num>1)  // so lets say we enter 4 - 4 is larger than 1 
       { 
       fact*=num;   //first step through it will be fact = fact * num; fact is 1 at first loop so it will be 1 * 4 and we put that value into fact 
       num--;    //here we set num to 3 for next loop and we repeat :D 
       } 
      } 

     return fact;    //here we return the value 
    } 


int main()       //just a normal main 
{ 
    int number; 
    cout<<"Enter number: \n"; 
    cin>>number; 
    cout<<"Factorial of "<<number<<" is "<<factorial(number); 

    return 0; 
} 

나는 귀하의 질문에 나는이 같은 질문을 볼 때 그것은 또한 나에게 도움이 완벽하게 정상적으로 및 초보자 프로그래머 나 자신을있는 생각. 희망이 도움이됩니다! 행운을 빕니다!