下面代码试用C#写的
using System ; public class M { //public static int[] store; //相当于设置了全局变量 //这个全局变量sum是包含在M类中的 public static int sum; public M() { int sum =0; //int[] store = {1,2,3,4,5,6,7,8,9,0}; } //打印函数 //符合要求的则把它打印出来 public static void Output(int[] store2) { for(int i = 9; i>=0; --i) { Console.Write(" {0}",store2[i]); } Console.WriteLine(); sum++; } //计算总数,返回sum值 public static int sum2() { return sum; } public static void Cumput(int score, int num, int[] store2 ) { //如果总的成绩超过了90环(也就是score<0),或者如果剩下要打靶 //的成绩大于10环乘以剩下要打的次数,也就是说即便后面的都打10环 //也无法打够次数,则退出递归 if(score < 0 || score > (num+1)*10 ) //次数num为0~9 { return; } //如果满足条件且达到最后一层 if(num == 0) { store2[num] = score; Output( store2); return; } for(int i = 0; i <= 10; ++i) { store2[num] = i; Cumput(score - i, num - 1,store2); } //Console.Write(" {0}",store2[5]); } } public class myApp { public static void Main( ) { int[] store; store = new int[10]; int sum = 0; //int a=90; //int b=9; //Output(); M.Cumput(90,9,store); sum = M.sum2(); //M.Cumput2(a,b,store); //Console.Write(" {0}",store[3]); //cout<<"总数:"<<< pre>
一共是92 378种可能