cf399B red and blue balls

【题目描述】

一个栈内初始有n个红色和蓝色的小球,请你按照以下规则进行操作 1.只要栈顶的小球是红色的,将其取出,直到栈顶的球是蓝色 2.然后将栈顶的蓝球变成红色 3.最后放入若干个蓝球直到栈中的球数为n 以上3步骤为一次操作 如栈中都是红色球,则操作停止,请问几次操作后停止 ainta出完题发现他自己不能AC所以想请你帮忙

https://www.luogu.org/problemnew/show/CF399B#sub

模拟出栈与入栈的题

#include 
#include 
int n;
char a[100];
int main()
{
	int len,top=0,count=0,i,tt=0;
	scanf("%d",&n);
	getchar();//读取回车符
	scanf("%s",a);
	len=strlen(a);
	while(1>0)
	{
		while(a[top]!='B')//条件模拟
		{
			a[top]='0';
			top++;
		}
		a[top]='R';
		for(i=top-1;i>=0;i--)
		{
			a[i]='B';
		}
		count++;//操作次数+1
		for(i=0;i<=len-1;i++)//判断有没有蓝球
		{
			if(a[i]=='B' )
			{
				tt++;
			}
		}
		if(tt==0)//没有则操作结束
		{
			break;
		}
		tt=0;
		top=0;//初始化
	}
	printf("%d",count);
	return 0;
}

你可能感兴趣的:(cf399B red and blue balls)