The Blocks Problem

The Blocks Problem_第1张图片

The Blocks Problem_第2张图片

The Blocks Problem_第3张图片
  1. 题目分析:
    本题考点,vector容器

难点:
总结不同的操作方法的共同点
英语阅读,理解题意 moves the pile of blocks consisting of block a, and any blocks that are stacked above block a是说a及a以上的积木

  1. 编程中遇到的问题
    如何遇到quit即停止
    一开始考虑 while(cin>>s1>>a>>s2>>b&&s1!="quit"),发现如果这样,在输入一个quit后是不能停止的,因为要在输入a,s2,b后才会判断s1

在参考了其他人的方案后,最终代码如下

#include
#include
using namespace std;
vector pile[30];
int n;//n组
void find_block(int a,int & p,int & h)
{
    for( p=0;p>n;
    for(int i=0;i>s1)
    {   if(s1=="quit")
        break;
        cin>>a>>s2>>b;
        find_block(a,pa,ha);
        find_block(b,pb,hb);
        if(pa==pb)continue;
        if(s1=="move")
        clear_above( pa,ha);
        if(s2=="onto")
        clear_above( pb,hb);
        move(pa,ha,pb); 
    }
    print();
    return 0; 
}

你可能感兴趣的:(The Blocks Problem)