⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 泊松分酒.txt

📁 程序设计比赛较为实用的一些代码,希望对别人能有帮助
💻 TXT
字号:
#include "iostream.h"
void practise(int a,int bv,int cv)
{
	int b=0,c=0,i,n=0;
	i=a/2;
	
	cout<<"Ways:\n";
	cout<<"bottle"<<a<<"  bv"<<bv<<"  cv"<<cv<<endl;
	cout<<"     "<<a<<"    "<<b<<"    "<<c<<endl;
	while(a!=i||b!=i&&c!=i)
	{if(!b) {a-=bv;b=bv;}
	else if(c==cv) {a+=cv;c=0;}
	else if(b>cv-c) {b-=(cv-c);c=cv;}
	else {c+=b;b=0;}
	cout<<"      "<<a<<"    "<<b<<"    "<<c<<endl;
	n++;
	}
	cout<<n<<" step(s)\n";
}
int probe(int a,int bv,int cv)
{
	int n=0,b=0,c=0,i;
	i=a/2;
	while(a!=i||b!=i&&c!=i)
	{if(!b) 
	if(a<bv) {n=-1;break;}
	else  {a-=bv;b=bv;}
	else if(c==cv){a+=cv;c=0;}
	else if(b>cv-c) {b-=(cv-c);c=cv;}
	else {c+=b;b=0;}
	n++;
	}
	return(n);
}
int main(int argc, char* argv[])
{   
	int a,bv,cv;
	while(cin>>a>>bv>>cv)
	{
		int m1,m2,n;
		if(bv==a/2||cv==a/2)   {
			cout<<"Ways:\n";
			cout<<"bottle"<<a<<"  bv"<<bv<<"  cv"<<cv<<endl;
			cout<<"      "<<a<<"    0"<<"    0"<<endl;
			if(bv==a/2) cout<<"      "<<a/2<<"    "<<a/2<<"    0"<<endl;
			else cout<<"      "<<a/2<<"    0"<<"    "<<a/2<<endl;
			cout<<"1 step(s)\n";
			continue;}
        if((bv<a/2&&cv<a/2))  {cout<<"IMPOSSIBLE\n";continue;}
		if(bv/cv==2||cv/bv==2) {cout<<"IMPOSSIBLE\n";continue;}
		m1=probe(a,bv,cv);
		m2=probe(a,cv,bv);
		if(m1<0&&m2<0) cout<<"IMPOSSIBLE\n";
		if(m1>0&&(m2<0||m1<m2)) {
			n=m1;practise(a,bv,cv);}
		if(m2>0&&(m1<0||m2<m1)) {
			n=m2;practise(a,cv,bv);}
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -