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

📄 4871039_ac_0ms_292k.cpp

📁 部分PKU上的源码
💻 CPP
字号:
#include<iostream>
#include<string>
using namespace std;
struct lei
{
	int x[12];
};
lei cyn(lei a)
{
	int i;
	for(i=10;i>0;i--) a.x[i]=a.x[i-1];
	a.x[0]=0;
	return a;
}
lei cy(lei a,int k)
{
	int i;
	for(i=10;i>=0;i--) a.x[i]*=k;
	return a;
}
lei add(lei a,lei b)
{
	int i;
	for(i=10;i>=0;i--) a.x[i]+=b.x[i];
	return a;
}
lei getit()
{
	string temp;
	lei now;
	int i;
	for(i=0;i<=11;i++)now.x[i]=0;
	while(1)
	{
		cin>>temp;
		if(temp=="BEGIN")cin>>temp;
		if(temp=="END") 
		{
			return now;
		}
		else if(temp=="OP")
		{
			int k;cin>>k;
			now.x[0]+=k;
		}
		else if(temp=="LOOP")
		{
			cin>>temp;
			if(temp[0]=='n')
			{
				lei ttt=cyn(getit());
				now=add(now,ttt);
			}
			else
			{
				int t=0,j=0;
				while(temp[j]) {t*=10;t+=temp[j]-'0';j++;}
				lei ttt=cy(getit(),t);
				now=add(now,ttt);
			}
		}
	}
}
void print(lei re)
{
	int i;
	bool first=true;
	for(i=10;i>=0;i--)
	{
		if(re.x[i]!=0) 
		{
			if(!first)cout<<"+";
			else first=false;
			if(i>0) 
			{
				if(i!=1)
				{
					if(re.x[i]!=1)printf("%d*n^%d",re.x[i],i);
					else printf("n^%d",i);
				}
				else 
				{
					if(re.x[i]!=1)printf("%d*n",re.x[i]);
					else printf("n");
				}
			}
			else printf("%d",re.x[i]);
		}
	}
	if(first==true) cout<<0;
	cout<<endl;
}
int main()
{
	int testnumber;
	cin>>testnumber;
	for(int count=0;count<testnumber;count++)
	{
		lei re=getit();
		cout<<"Program #"<<count+1<<"\nRuntime = ";
		print(re);
		cout<<endl;
	}
	return 0;
} 

⌨️ 快捷键说明

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