• 蓝桥杯历年真题省赛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

  • 相关阅读:
    海量数据情况下,怎么用Bitmap进行签到统计?
    JAVA --- 异常和异常处理
    洛谷P3065 First G
    python 实现 rsa 加密
    一篇经典的 Redis 面试资料「处女座笔记」「吐血推荐」...
    ython + Selenium Web自动化 2022更新版教程 自动化测试 软件测试 爬虫-笔记博客整理
    网络学习:BGP路径属性分类
    【Python】推荐三个好玩的图像处理库
    PTA:7-1 线性表的合并
    软件工程导论概述----软件的生命周期
  • 原文地址:https://blog.csdn.net/2301_76876837/article/details/136694077