题目:

晚会上(具体是不是晚会不太记得了...)所有人要站成一排。有三种颜色的衣服,要求相邻的人穿不同颜色的衣服。输入每种颜色衣服的数量,问总共有多少种排列方式。

例:

输入:1 1 1

输出:6

题目分析:

可以采用递归的做法。假设已经排好了n个人,则第n+1个人的衣服可从另外两种颜色中选。

递归终止的条件是:所有的衣服已经用完或者没有可以选的衣服。

代码:

#include <iostream>
#include <vector>
using namespace std;int arrange(vector<int>& cloth, int last, int len);
int total;              // 衣服总数void main()
{               vector<int> cloth(3);             // 三种颜色的衣服数量for (int i = 0; i < 3; i++){cin >> cloth[i];total += cloth[i];}int cnt = arrange(cloth, -1, 0);cout << cnt << endl;cin.get();
}//
// cloth: 三种颜色剩余衣服数量
// last: 前一个颜色
// len: 当前已经排列了几个
//
int arrange(vector<int>& cloth, int last, int len)
{if (len == total)        // 全部排列完return 1;   int cnt = 0;for (int i = 0; i < 3; i++)                      // 检查每种颜色{if (i != last && cloth[i] > 0)                // 与前一个不同颜色,且有剩余衣服{cloth[i]--;cnt += arrange(cloth, i, len + 1);      // 排列下一个cloth[i]++;}}return cnt;
}

阿里2018笔试题 之 三种颜色排列相关推荐

  1. 软件测试笔试题(三)

    软件测试用例-------电梯,杯子,笔,桌子,洗衣机 拿到题目,先分析 在设计测试用例时一般从以下几个方面进行分析:功能测试,性能测试,界面测试,安全性测试,兼容性测试,可用性测试,可靠性测试 软件 ...

  2. ios 三种颜色画笔和橡皮擦的画图板demo

    demo功能:三种颜色画笔和橡皮擦的画图板demo [iphone 6.1 测试通过] demo说明:项目中PaintView.m 是demo的画板部分,PaintView和三个颜色按钮添加到View ...

  3. 灰、黄、蓝三种颜色的收集装置模型练习及实现思路

    下图模型中,灰.黄.蓝三种颜色的收集装置各1个.灰.黄.蓝三种颜色的方形环各3个.方形环随机摆放在收集装置上.要求将方形环进行移动,通过最少次移动,使方形环颜色与收集装置颜色一致.每次可移动一个方形环 ...

  4. 2023-02-11:给你两个整数 m 和 n 。构造一个 m x n 的网格,其中每个单元格最开始是白色, 请你用 红、绿、蓝 三种颜色为每个单元格涂色。所有单元格都需要被涂色, 涂色方案需要满足:

    2023-02-11:给你两个整数 m 和 n .构造一个 m x n 的网格,其中每个单元格最开始是白色, 请你用 红.绿.蓝 三种颜色为每个单元格涂色.所有单元格都需要被涂色, 涂色方案需要满足: ...

  5. 【Python】有红、黄、绿三种颜色的球,编程计算摸出球的各种颜色搭配

    Python三色球问题 题目 代码 结果 题目 有红.黄.绿三种颜色的球,其中红球 3 个, 黄球 3 个,绿 球 6 个.先将这 12 个球混合放在一个盒子中,从中任意摸 出 8 个球,编程计算摸出 ...

  6. 【C语言基础练习】有红、绿、蓝三种颜色的球各3个。现在将着9个球混合放在一个盒子中,从中任意摸出6个,编程计算摸出球的各种颜色搭配。

    有红.绿.蓝三种颜色的球各3个.现在将着9个球混合放在一个盒子中,从中任意摸出6个,编程计算摸出球的各种颜色搭配. 1 #include<stdio.h>2 int main()3 {4 ...

  7. 设计一个灯光控制逻辑电路. 要求红、绿、黄三种颜色的灯在时钟信号的作用下按表P6.30规定的顺序转换状态

    题目: 设计一个灯光控制逻辑电路. 要求红.绿.黄三种颜色的灯在时钟信号的作用下按表P6.30规定的顺序转换状态. 表中的1表示"亮", 0表示"灭". 要求电 ...

  8. 小米Max正式发布 三种颜色三种配置

    小米一直在预热的小米Max今天正式发布,正如其名字一样,其主要特点就是大--采用了6.44英寸1080p的屏幕.小米Max采用了2.5D弧面玻璃加金属机身的设计,背部设有指纹识别功能,配置方面则是高通 ...

  9. 有红、黄、绿三种颜色的球,其中红球 3 个, 黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。1. 输出情况总数;2.输出摸取情

    内容1:有红.黄.绿三种颜色的球,其中红球 3 个, 黄球 3 个,绿球 6 个.先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配.1. 输出情况总数;2.输 ...

  10. matlab一个图三种颜色,MATLAB:生成给定三种颜色的色彩图

    我正在尝试在MATLAB中生成一个颜色图,给出三种颜色,一种是高极限,零极低.我的思维过程是从高端到中间循环并将每一步存储到3xN(第一列是R,第二列是G,第三列是B)矩阵.所以我正在使用: %fad ...

最新文章

  1. 单片机机器周期怎么计算公式_什么是晶振,对于单片机来说它有什么重要作用?...
  2. c++ 图的连通分量是什么_图与图论基本概念(图论算法入门)
  3. ES6的新特性----Vue学习必备基础知识
  4. idea:打包jar(原文by曲高终和寡)
  5. WPF MVVM实例三
  6. 前端学习(338):堆栈
  7. 粒子群优化算法(Particle Swarm Optimization)的 Matlab(R2018b)代码实现
  8. 如何看待开源软件的知识产权问题——陆首群
  9. pymysql之常见数据库操作
  10. 和平精英有电脑版吗_和平精英电脑版灵敏度调多少 CP端灵敏度设置攻略
  11. ubuntu16.04 gnome环境,怎么样下载使用monaco字体
  12. popupwindow拦截点击物理返回键
  13. Entry name ‘res/layout/test_toolbar.xml‘ collided
  14. linux 1.0 如何运行,观点|Linux 1.0 之旅:回顾这一切的开始
  15. 华为matex搭载鸿蒙系统,华为 MateX 推迟至 9 月上市,或预装鸿蒙系统
  16. 四川泸州市高职计算机学校,四川泸州职高学校有哪些?
  17. 可以实现内网穿透的几款工具
  18. 4.网络设备基础配置实验
  19. Stack Overflow 宣布推出离线版本
  20. 图论欧拉回路初步 BZOJ2095 POI2010 Bridges

热门文章

  1. fastadmin项目实战踩坑
  2. 虚拟内存设置(可扩展板载内存)
  3. 汽车电子学习笔记---CAN网络(二)
  4. (转载)RAID技术全解图解-RAID0、RAID1、RAID5、RAID100
  5. 修改WordPress网站默认wp-content/uploads上传文件路径
  6. 扛住100亿次请求——如何做一个“有把握”的春晚红包系统”
  7. 人生自我认识20条(经典转载)
  8. 婚纱摄影、影楼、照相馆流量制造工具预约系统之种草社区
  9. 电信光纤ipv6-- 搭建属于自己的服务器
  10. 怎么压缩html的文件,css如何压缩?