2017-12-13 8 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; 
    } 

この関数は、いくつかのケースでは正しい答えを返し、他の人には間違った答えを返します。誰もが私にこの機能に何か間違いがあるのを助けることができますか?2つの数字の組み合わせ(確率)を取得しようとしています

+0

どのような場合が正しいですか?それは間違っていますか? [最小限の、完了した、検証可能な例](https://stackoverflow.com/help/mcve)を入力してください。 – Galen

+0

17と9の答えは正しいです。 –

+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

関連する問題