今天带你解决C语言难题,关注我,带你飞!(有点夸张了,嘿嘿)
言归正传了哈!
题目:
口袋中放 12 个球,3 个红的,3 个白的,6 个黑的。从中任取 8 个,编写程序列出所有可能的取法。
提示:
可采用 3 重循环,对每一种颜色球的个数进行穷举,三种球的个数相加是 8,就是一种取法。
【输出样例】
红色球=3,白色球=3,黑色球=2
红色球=2,白色球=3,黑色球=3
红色球=3,白色球=2,黑色球=3
红色球=1,白色球=3,黑色球=4
红色球=2,白色球=2,黑色球=4
红色球=3,白色球=1,黑色球=4
红色球=0,白色球=3,黑色球=5
红色球=1,白色球=2,黑色球=5
红色球=2,白色球=1,黑色球=5
红色球=3,白色球=0,黑色球=5
红色球=0,白色球=2,黑色球=6
红色球=1,白色球=1,黑色球=6
红色球=2,白色球=0,黑色球=6
共有 13 种情况
方法1:
#include
void main( )
{
int i,j,k;
for(i=3;i>=0;i--)
//取第一次时,红球全部取完
for(j=3;j>=0;j-- )
//取第一次时,白球全部取完
for(k=2;k<=6;k++)
//取第一次时,黑球取最小 if(i+k+j==8)
{
printf("红球=%d,白球=%d,黑 球=%d\n",i,j,k); }
}
方法2:
#include
void main( )
{
int i,j,k;
for(i=0;i<=3;i++) //红球从最少开始取
for(j=0;j<=3;j++) //白球从最少开始取
{
k=8-i-j;
if(k<=6) //黑球从最多开始取
printf("红球=%d,白球=%d,黑球=% d\n",i,j,k); }
}
还有疑问的话,私信我就可以。
对你有帮助的话,点个关注点个赞吧!
举报/反馈