C语言每日一练
2022年3月8日
题目描述
一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少种可能的颜色搭配?
问题分析
这是一道简单的组合问题,遍历所有可能的搭配情况,打印出3种颜色球的总数和为8的组合。
代码实现
#include <stdio.h>
int main()
{
int red = 0, white = 0, black = 0;
int cnt = 0;
for(red = 0; red <= 3; red++)
for(white = 0; white <=3; white++)
for(black = 0; black <= 6; black++)
if(red + white + black == 8)
{
printf("%-2d --- %d个红球,%d个黑球,%d个黑球\n",
++cnt, red, white, black);
}
printf("总共有%d种搭配.\n", cnt);
return 0;
}
运行结果
网上参考
原文链接:http://c.biancheng.net/cpp/html/3316.html
该代码省去了一层循环。
#include<stdio.h>
int main()
{
int m, n, number=0;
printf(" 红球 白球 黑球\n");
printf("......................\n");
for( m=0; m<=3; m++ )
for( n=0; n<=3; n++ )
if(8-m-n<=6)
printf(" %2d: %d %d %d\n", ++number, m, n, 8-m-n);
return 0;
}