抽签
来源:互联网 发布:如何做网站的seo 编辑:程序博客网 时间:2024/04/28 18:46
抽签
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行)
#include <stdio.h>#define N 6#define M 5#define BUF 1024void f(int a[], int k, int m, char b[]){ int i,j; if(k==N){ b[M] = 0; if(m==0) printf("%s\n",b); return; } for(i=0; i<=a[k]; i++){ for(j=0; j<i; j++) b[M-m+j] = k+'A'; ______________________; //填空位置 }}int main(){ int a[N] = {4,2,2,1,1,3}; char b[BUF]; f(a,0,M,b); return 0;}
仔细阅读代码,填写划线部分缺少的内容。
注意:不要填写任何已有内容或说明性文字。
正解代码:
#include <stdio.h>#define N 6#define M 5#define BUF 1024int count = 0;void f(int a[], int k, int m, char b[]){ int i,j; if(k==N){ b[M] = 0; if(m==0) { count++; printf("%s\n",b); } return; } for(i=0; i<=a[k]; i++){ for(j=0; j<i; j++) b[M-m+j] = k+'A'; //______________________; //填空位置 f(a, k+1, m-i,b); }}int main(){ int a[N] = {4,2,2,1,1,3}; char b[BUF]; f(a,0,M,b); printf("count->%d\n", count); return 0;}
0 0
- 抽签
- 抽签
- 抽签
- 抽签
- 抽签
- 抽签
- 抽签
- 抽签
- 抽签
- 抽签
- 抽签问题
- 抽签问题
- 抽签问题
- 抽签问题
- 5、抽签
- 抽签(蓝桥杯真题)
- 抽签程序
- 蓝桥杯 抽签
- Java学习提要——'Thread类'与'Runnable接口'基础
- Oracle 11g导出缺失表
- SVM多类分类方法
- 浅析C#数据类型转换的几种形式
- 调用由ASP动态生成的JS文件
- 抽签
- 弹性布局FlexBox
- C语言顺序表的实现
- matlab例题及demo分析
- jquery ajax无效的一个可能原因
- 【原创达人】ZUK HD-1 双发声单元圈铁耳机
- python 字典 按key值大小 倒序取值
- c++ nullptr vs NULL
- TP 框架 常识