问题及代码:
/*
*copyright (c) 2014,烟台大学计算机学院
*all rights reserved.
*文 件 名 : 三色球问题.cpp
*作 者 :张 鹏
*完成日期 :2014年10月27号
*版 本 号 :v1.0
*
*问题描述 :若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,问从中任取8个共有多少种颜色搭配?
*输入描述 :无
*程序输出 :输出一系列数,为不同的颜色搭配。
*/
#include <iostream> //预处理指令。
using namespace std; //使用C++的命名空间 std。
int main() //函数首部。
{
int iW_ball,iR_ball,iB_ball,iCase=0; //声明四个变量iW_ball,iR_ball,iB_ball,iCase为整型。四个变量分别代表白球,红球,黑球和方案。
cout<<"颜色搭配的方案如下:"<<endl; //输出汉字,使得界面更友好。
for(iW_ball=0; iW_ball<=3; iW_ball++) //for语句执行,穷举白球数量的可能性。
{
for(iR_ball=0; iR_ball<=3; iR_ball++) //for语句执行,穷举红球数量的可能性。
if (8-iW_ball-iR_ball<=6) //if语句执行,判断是否满足要求。
{
iCase++; //方案数的计算。
iB_ball=8-iW_ball-iR_ball; //黑球的数量。
if (iCase<10) //if语句执行,为了界面更整齐。
cout<<"方案 "<<iCase<<": 红球"<<iR_ball<<"颗 白球"<<iW_ball<<"颗 黑球"<<iB_ball<<"颗"<<endl; //输出结果
else
cout<<"方案"<<iCase<<": 红球"<<iR_ball<<"颗 白球"<<iW_ball<<"颗 黑球"<<iB_ball<<"颗"<<endl; //输出结果
}
}
return 0; //执行return语句并结束程序。
}
运行结果:
知识点总结:
理由数学知识减少for语句的多重嵌套。
学习心得:
看来编程可以解决好多实际问题,棒棒的!