从3个红球,5个白球,6个黑球中任取8个球,其中必须有白球,输出所有可能的方案

#include <stdio.h>
main()
{
int r,w,b,i;
for(r=0;r<=3;r++)
for(w=1;w<=5;w++)
for(b=0;b<=6;b++)
if(r+b+w==8 && w>0 )
printf("红球=%d  白球=%d  黑球=%d\n",r,w,b);
}

运行结果:

红球=0  白球=2  黑球=6
红球=0  白球=3  黑球=5
红球=0  白球=4  黑球=4
红球=0  白球=5  黑球=3
红球=1  白球=1  黑球=6
红球=1  白球=2  黑球=5
红球=1  白球=3  黑球=4
红球=1  白球=4  黑球=3
红球=1  白球=5  黑球=2
红球=2  白球=1  黑球=5
红球=2  白球=2  黑球=4
红球=2  白球=3  黑球=3
红球=2  白球=4  黑球=2
红球=2  白球=5  黑球=1
红球=3  白球=1  黑球=4
红球=3  白球=2  黑球=3
红球=3  白球=3  黑球=2
红球=3  白球=4  黑球=1
红球=3  白球=5  黑球=0
请按任意键继续. . .

类似1:

一个盒子中放有50个球,其中15个红的,19个白的,16个黑的,从中任取n个球(每种球最少取一个),问共有多少种不同的颜色搭配。

        方法一:

#include <stdio.h>
main()
{
	int i,j,k,l,n,s=0;
	scanf("%d",&n);
	for(i=1;i<=15;i++)
	for(j=1;j<=19;j++)
	for(k=1;k<=16;k++)
		if(i+j+k==n && i>0 && j>0 && k>0)
			s++;
	printf("共有%d种搭配方式\n",s);
}

        方法二:

#include <stdio.h>
main()
{
	int i,j,k,l,n,s=0;
	scanf("%d",&n);
	for (i=1;i<=15&&i<n;i++)
	{
		for (j=1;j<=19&&j<n;j++)
		{
			for(k=1;k<=16&&k<n;k++)
			{
				if((i+j+k)==n)
				{ 
					s=s+1;
				}
			}
		}
	}
	printf("共有%d种搭配方式\n",s);
}
8
共有21种搭配方式
请按任意键继续. . .

类似2:

将一张100元钞票换成等价值的10元,5元,2元和1元的小钞,每次换成40张小钞,要求每一种小钞都要有。编程求出所有可能的换法总数并输出各换法的组合。

#include <stdio.h>
main()
{
	int i,j,k,m,s=0;
	for(i=1;i<=10;i++)
	for(j=1;j<=20;j++)
	for(k=1;k<=50;k++)
	for(m=1;m<=100;m++)
		if((i*10+j*5+k*2+m*1)==100 && i+j+k+m==40)
		{	
			printf("10元%3d张,5元%3d张, 2元%3d张, 1元%3d张\n",i,j,k,m);
			s=s+1;
		}
	printf("共有%d种搭配方式\n",s);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值