第七届蓝桥杯 省赛 JavaB组 抽签

    xiaoxiao2021-03-25  183

    X星球要派出一个5人组成的观察团前往W星。 其中: A国最多可以派出4人。 B国最多可以派出2人。 C国最多可以派出2人。 .... 那么最终派往W星的观察团会有多少种国别的不同组合呢? 下面的程序解决了这个问题。 数组a[] 中既是每个国家可以派出的最多的名额。 程序执行结果为: DEFFF CEFFF CDFFF CDEFF CCFFF CCEFF CCDFF CCDEF BEFFF BDFFF BDEFF BCFFF BCEFF BCDFF BCDEF ....

    (以下省略,总共101行)

    public class A { public static void f(int[] a, int k, int n, String s) { //k为不同的国家,n为当前已经选出的人数 if(k==a.length){ if(n==0) System.out.println(s); return; } String s2 = s; for(int i=0; i<=a[k]; i++){//a[k]循环当前国家索引 _____________________________; //填空位置 s2 += (char)(k+'A'); } } public static void main(String[] args) { int[] a = {4,2,2,1,1,3};//5个国家最多可以派出的人数 f(a,0,5,""); } }

    答案:

    f(a,k+1,n-i,s2)

    //n-i 还需要派遣的人数

    思路:题目的代码很简单,用从5个国家中选出5个人去开会,肯定会用到递归。即自己调用自己。

    转载请注明原文地址: https://ju.6miu.com/read-479.html

    最新回复(0)