huawei.c
来自「数字信号处理实验」· C语言 代码 · 共 27 行
C
27 行
/*华为面试题(十枪90环问题)*/
#include <stdio.h>
int max(int x,int y){
if (x>=y) return x;
else return y;
}
int min(int x,int y){
if (x<=y) return x;
else return y;
}
long f(int m,int n){/*计算m枪n环共有几种打法,要求输入m>=1,n>=0,n<=10m*/
long sum=0;
int k,i,j;
if(m==1||n==0||n==10*m) return 1;
if(n==1) return m;
i=max(0,n-10*(m-1));
j=min(10,n);
for(k=i;k<=j;k++) sum+=f(m-1,n-k);
return sum;
}
main(){
printf("f(10,90)=%ld",f(10,90));
getch();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?