摘要:
问题描述:假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳子上进行这个动作,而且一次只能调换两个旗子。#include #include using namespace std;//三色旗算法://假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您//希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳子上//进行这个动作,而且一次只能调换两个旗子。//算法说明:要使用最少的个数,就是用一个脚标从头开始移动,碰到红色就放到前面 阅读全文
摘要:
先看程序运行结果可以看出第i行的元素是由上一行的元素得来的,下面是我写的算法:#include using namespace std;#define max 10//写的递归函数int calculate(int *pretemp,int row){ //跳出条件 if (row > max) { delete pretemp; return 0; } //刚开始第一行的时候指针为空 if (pretemp == NULL) { for(int i = 1;i #defineN12longcombi(intn... 阅读全文