题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5095
题意:现给出你表达式g(p,q,r,u,v,w,x,y,z) = ap+bq+cr+du+ev+fw+gx+hy+iz+j,让你输入t个样例,每个样例输入系数a-i,让你输出表达式
解析:题目不难,就是要细心点
1.从系数不为零的项开始输出
2.全为零输出0
3.中间项的系数为正数的话,要输出’+’
4.考虑系数为1的情况
5.末尾单独考虑
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <cstring>
#include <string>
#include <queue>
#include <vector>
using namespace std;
const int maxn = 20;
char a[maxn] = {'p','q','r','u','v','w','x','y','z'};
int b[maxn];
int main()
{
int n;
cin>>n;
while(n--)
{
for(int i=0;i<=9;i++)
scanf("%d",&b[i]);
int last = -1;
for(int i=0;i<10;i++)
{
if(b[i]!=0)
{
last = i;
break;
}
}
if(last==-1)
{
puts("0");
continue;
}
for(int i=last;i<9;i++)
{
if(b[i]==0)
continue;
if(b[i]>0 && i!=last)
printf("+");
if(b[i]==1)
printf("%c",a[i]);
else if(b[i]==-1)
printf("-%c",a[i]);
else
printf("%d%c",b[i],a[i]);
}
if(b[9]!=0)
{
if(b[9]>0 && 9!=last)
printf("+");
printf("%d\n",b[9]);
}
else
puts("");
}
return 0;
}