#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void loop(int *ans, char *lpNum)
{
char s[10], loopNum[10] = {0};
int i,x;
while(scanf("%s", s) && s[0] != 'E')
{
if(s[0] == 'L')
{
int *tmp = new int[11];
memset(tmp, 0, 11*sizeof(int));
scanf("%s", loopNum);
loop(tmp, loopNum);
for(i = 0; i <= 10; i++)
ans[i] += tmp[i];
}
else if(s[0] == 'O')
{
scanf("%d", &x);
ans[0] += x;
}
}
if(lpNum[0] == 'n')
{
for(i = 10; i > 0; i--)
ans[i] = ans[i-1];
ans[0] = 0;
}
else
{
x = atoi(lpNum);
for(i = 0; i <= 10; i++)
ans[i] *= x;
}
}
int main()
{
int t,ans[11],item;
scanf("%d", &t);
for(item = 1; item <= t; item++)
{
memset(ans, 0, sizeof(ans));
scanf("%*s");
loop(ans, "1");
printf("Program #%d\nRuntime = ", item);
bool first = 1;
for(int i = 10; i >= 0; i--)
{
if(ans[i] == 0)continue;
if(i == 0)printf("%s%d", first ? "" : "+", ans[0]);
else if(ans[i] == 1)
printf("%sn", first ? "" : "+");
else if(ans[i] > 1)
printf("%s%d*n", first ? "" : "+", ans[i]);
if(i > 1)printf("^%d", i);
first = 0;
}
if(first)printf("0");
printf("\n\n");
}
return 0;
}
转载于:https://www.cnblogs.com/You-Change/p/3530626.html