• 蓝桥杯历年真题省赛java b组 2016年 第七届 抽签


    一、题目

    抽签

    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行)

    二、代码


     

    1. package Lan2016;
    2. public class E抽签 {
    3. /*抽签
    4. X星球要派出一个5人组成的观察团前往W星。
    5. 其中:
    6. A国最多可以派出4人。
    7. B国最多可以派出2人。
    8. C国最多可以派出2人。
    9. ....
    10. 那么最终派往W星的观察团会有多少种国别的不同组合呢?
    11. 下面的程序解决了这个问题。
    12. 数组a[] 中既是每个国家可以派出的最多的名额。
    13. 程序执行结果为:
    14. DEFFF
    15. CEFFF
    16. CDFFF
    17. CDEFF
    18. CCFFF
    19. CCEFF
    20. CCDFF
    21. CCDEF
    22. BEFFF
    23. BDFFF
    24. BDEFF
    25. BCFFF
    26. BCEFF
    27. BCDFF
    28. BCDEF
    29. ....
    30. (以下省略,总共101行)*/
    31. /*
    32. * 不断尝试每个国家派出的人数范围
    33. * */
    34. public static void f(int[] a, int k, int n, String s)
    35. {
    36. if(k==a.length){//如果已经把每个国家的派出的人数范围已经遍历完
    37. if(n==0) System.out.println(s);//且人数达到5个
    38. return;//返回
    39. }
    40. String s2 = s;//定义新串保存之前的国别组合
    41. for(int i=0; i<=a[k]; i++){//遍历各国可派出的人数
    42. f(a,k+1,n-i,s2);//递归调用,判断下一个国家,这是人数剩n-i个
    43. s2 += (char)(k+'A');//将字母加到s2上
    44. }
    45. }
    46. public static void main(String[] args)
    47. {
    48. int[] a = {4,2,2,1,1,3};//数组,
    49. // A国最多可以派出4人,B国最多可以派出2人,C国最多可以派出2人,
    50. // D国最多可以派出1人,E国最多可以派出1人,F国最多可以派出3人。
    51. f(a,0,5,"");//
    52. }
    53. }

    三、反思

            要考虑到用递归,k表示遍历的国别数,当一个国家遍历完之后,则要判断下一个国家,此时需要遍历的人数n也会-1

  • 相关阅读:
    软工UML画图
    图片后缀和ContentType大全
    node-xlsx - 简单几行代码处理导入、导出 excel 表格数据,免费开源的 javascript 工具库
    日常软件游戏丢失msvcp120dll怎么修复?分享5个修复方法
    具身智能(Embodied AI)和食品计算
    VUE3 TypeError: defineConfig is not a function
    常见插件 tomcat插件
    HTML5中的document.visibilityState
    《深入浅出OCR》第二章:OCR技术发展与分类
    【Java 设计模式】UML 之类图
  • 原文地址:https://blog.csdn.net/2301_76876837/article/details/136694077