打耙问题: 有一个射击队员练习打耙,耙一共有10环,连开10枪共打中90环的可能性有多少种,用C语言递归实现,并输出每次的过程,比如:10,10,10,10,10,10,10,10,10,0。 #include < stdio.h > static int a[ 10 ] = ... {0} ; static count = 0 ; static int sum = 0 ; void print( int * b) ... { for(int i=0;i <10;i++) printf("%3d",b[i]); printf(" "); } bool isfun( int i) ... { int k=(9-i)*10+sum; if(k <90) return true;//判断是否进行下一步试探 true:不 else return false; } void search( int k) ... { // if(k> 9) return; if(k==9)...{a[k]=90-sum;print(a);count++;return;} int j=sum; for(int i=10;i>=0;i--,sum=j) ...{ sum+=i; a[k]=i; if(isfun(k)) break; search(k+1); } } void main() ... { search(0); printf("count:%d ",count);//总数 }