题意:就是让你求出时间复杂度。
分析:由于指数最多为10次方,所以可以想到用一个数组保存各个指数的系数,具体看代码实现吧!
代码实现:
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; char str[1000][100]; char key[100]; int num; struct node{ int sum[15]; void init() { memset(sum,0,sizeof(sum)); } }; void init()//把字符串提取出来 { int i,t=1,num=0; scanf("%s",key); while(t) { scanf("%s",key); strcpy(str[num++],key); if(key[0]=='E') t--; else if(key[0]=='L') t++; } } struct node xiangcheng(struct node a,struct node b)//相乘 { int i,j; struct node res; res.init(); for(i=0;i<=10;i++) for(j=0;j<=10;j++) res.sum[i+j]=res.sum[i+j]+a.sum[i]*b.sum[j]; return res; } struct node add(struct node a,struct node b)//相加 { int i; for(i=0;i<=10;i++) a.sum[i]+=b.sum[i]; return a; } struct node dfs() { int i=0; struct node a; a.init(); while(1)//碰到END才结束 { i=0; if(str[num][0]=='L') { num=num+1; struct node b; b.init(); if(str[num][0]=='n') b.sum[1]++; else { int k=0; i=0; while(str[num][i]!='