求解编写程序题目

Hafwen 2020-02-21 08:33:35
有没有大佬教教新手怎么用C++编写这个程序(注:要列出所有组合)
...全文
286 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hafwen 2020-02-26
  • 打赏
  • 举报
回复
引用 3 楼 liups的回复:
题目不对!比如红球如果只有小于3个和大于等于三个,答案肯定不一样的,所以这种问题必须说清楚
哈哈哈有道理 只能暂且忽略这个情况啦 老师出的题目
Hafwen 2020-02-26
  • 打赏
  • 举报
回复
引用 1 楼 qq_46311062的回复:
楼主,每种球的个数都未知吗?
是的,就是要穷举那种
liups 2020-02-21
  • 打赏
  • 举报
回复
题目不对!比如红球如果只有小于3个和大于等于三个,答案肯定不一样的,所以这种问题必须说清楚
Aist-memory 2020-02-21
  • 打赏
  • 举报
回复
#include "stdafx.h"  

#include<iostream>

#include<iomanip>

using namespace std;

int main()
{
enum color{red,yellow,blue,white,black};//声明枚举类型color

color pri; //定义color类型的变量pri

int i,j,k,n=0,loop;//n是累计不同颜色的组合数

for(i=red;i<=black;i++)//当i为某一颜色时
{
for(j=red;j<=black;j++)//当j为某一颜色时
{
if(i!=j)//若前两个球的颜色不同
{
for(k=red;k<=black;k++)//只有前两个球的颜色不同,才需要检查第3个球的颜色
{
if(k!=i&&k!=j)//三个球的颜色都不同
{
n=n+1;//使累计值n加1

cout<<setw(3)<<n;//输出当前的n值,字符宽度为3

for(loop=1;loop<=3;loop++)//先后对三个球做处理
{
switch(loop)//loop的值先后为1,2,3
{
case 1:pri=color(i);break;//color(i)是强制类型转换,使pri的值为i

case 2:pri=color(j);break;// j

case 3:pri=color(k);break;// k

default :break;
}

switch(pri) //判断pri的值,输出相应的颜色
{
case red:cout<<setw(8)<<"red";break;

case yellow:cout<<setw(8)<<"yellow";break;

case blue:cout<<setw(8)<<"blue";break;

case white:cout<<setw(8)<<"white";break;

case black:cout<<setw(8)<<"black";break;

default :break;
}
}

cout<<endl;
}
}
}
}
}

cout<<"total:"<<n<<endl; //输出符合条件的组合的个数

return 0;
}
46311062 2020-02-21
  • 打赏
  • 举报
回复
楼主,每种球的个数都未知吗?

33,322

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧