#3629: help


boy10016863 (慢慢)

學校 : 國立臺東大學
編號 : 10965
來源 : [61.224.11.227]
最後登入時間 :
2020-03-01 14:41:56
c061. 00530 - Binomial Showdown -- UVa530 | From: [210.240.176.185] | 發表日期 : 2010-04-12 11:25

請問我這樣寫還是會溢位嗎?

我卡陰了...=.=

#include <cstdlib>
#include <iostream>

using namespace std;

long long int fun(long long int x){ 
    if(x==1||x==0)
      return 1;
    else
      return x*fun(x-1);}

int main(int argc, char *argv[])
{
 long long int m,n,y,sum,i,a=1,b;
 while(cin >> n >> m){
    if(n==0&&m==0)
      break;
    else{
      a=1;
      y=n-m;
      if(y>m){
        for(i=1;i<=m;i++){
           a*=n;
           n--;}
        b=fun(m);}
      else{
        for(i=1;i<=y;i++){
           a*=n;
           n--;}
        b=fun(y);}
      sum=a/b;
      cout << sum << endl;
      }}       
}

 
ZeroJudge Forum