唱着歌屠龙
机器学渣
 
 

 排列组合公式计算

 
 
时间限制:1秒    内存限制:256兆

题目描述

  实现以下函数:

long my_function(int m, int n)

用来计算下面数学式的值,并且将计算结果返回:

图片

输入格式

 实现函数 my_function notice:请不要改动函数头

 

输出格式

 测试平台会调用你实现的函数,你只需要返回正确的计算结果即可,放回结果的规则如下:

1, 如果平台提供的m, n  的值是不合法的,例如 m == 2, n == 1, 那么返回结果-1

2, 如果平台调用函数是合法的,那么放回数学式的值,例如 m == 0, n == 0时,那么你的函数需要返回 1.

 1 // Problem#: 6382
 2 // Submission#: 1634071
 3 // The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
 4 // URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
 5 // All Copyright reserved by Informatic Lab of Sun Yat-sen University
 6 
 7 #include <stdio.h>
 8 
 9 long my_function(int m, int n);
10 
11 int main()
12 {
13    int m , n ;
14    int sum;
15    
16    scanf ("%d %d",&m,&n) ;
17    sum = my_function(m,n) ;
18    
19    printf ("%d\n",sum);
20    
21    return 0;  
22 }
23 long my_function(int m, int n)
24 {  
25    int i ;
26    double a=1 , b=1 , c=1 , d;
27    if ( m > n)
28       return -1;
29    else
30      if ( m < 0 || n < 0)
31       return -1;
32 
33    else 
34       if ( m >= 0 && n >= 0 && n >= m) 
35      {
36         for ( i=1 ; i <= m ; i++)
37         { 
38             a=a*i;
39             } 
40         for ( i=1 ; i<= n ; i++)
41         {
42             b=b*i;
43             }
44         for ( i=1 ; i<= (n-m); i++)
45         {
46             c=c*i;
47             }
48         d=b/(a*c);
49       return d ;
50       }
51 }                          

 

呵呵呵呵呵呵 这道题坑死爹!!!!!数据类型问题 折磨了我好多小时!!! 就是个数据的长度问题!!!

posted on 2012-11-07 23:47  唱一支歌  阅读(140)  评论(0编辑  收藏  举报