2017-12-13 12 views
0
unsigned long long int first(int b , int c){ 
int h=b; 
//int k; 
for(int k=b-1;k>c;k--){ 

    b=b*k; 
    } 
int comb=b/factorial(h-c); 
return comb; 
    } 

이 함수는 몇 가지 경우에 대해 올바른 답을하고 다른 경우에는 잘못된 답을 반환합니다. 아무도 나를 기쁘게 도와 줄 수있는이 기능이 잘못 되었나요?!메신저 (숫자)의 조합 (확률)을 얻으려고 시도합니다.

+0

어떤 경우 틀린가요? 어떤 경우에 잘못 되었습니까? [Minimal, Completed, Verifiable Example] (https://stackoverflow.com/help/mcve)을 제공해주십시오. 17 및 9에 대한 – Galen

+0

대답은 정확합니다. –

+0

17과 6은 답이 잘못되었습니다 –

답변

3

int combint이므로 int를 반환합니다.

unsigned long long int first을 돌려 주어도 상관 없습니다. 결과는 int 값으로 반올림되어 정밀도가 손실됩니다.

+0

답은 내 테스트 케이스의 int이므로 반올림하지 않습니다 –

+0

@HannaNassar 빗은'int'입니다. 'int' b에만 적합하고, k는'int'이고'long long'을 반환합니다. 결과가'long long'으로 기대된다면'ints'에 연산을하지 마십시오. – sg7