这个题是对哈希表的运用练习。
题目大意:
已知a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 ,其中系数 ai∈[-50,50] 自变量xi∈[-50,0)∪(0,50],给出系数a1~a5,
求方程解的个数。
不过直接用的map,这算不算哈希表??
下面是代码:
#include <stdio.h>
#include <map>
using namespace std;
int main()
{
int a[5],i;
while(scanf("%d",&a[0])!=EOF)
{
int i,j,k,ans=0;
map <int ,int> map1;
for(i=1; i<5; i++)
{
scanf("%d",&a[i]);
}
for (int i =-50; i <=50; i++)
{
for (int j =-50; j <=50; j++)
{
if (i ==0|| j ==0)
{
continue;
}
int temp = i * i * i * a[0] + j * j * j * a[1];
if (map1.find(temp) == map1.end())
{
map1[temp] =1;
}
else
{
map1[temp]++;
}
}
}
for (int i =-50; i <=50; i++)
{
for (int j =-50; j <=50; j++)
{
for (int k =-50; k <=50; k++)
{
if (i ==0|| j ==0|| k ==0)
{
continue;
}
int temp = i * i * i * a[3] + j * j * j * a[4] + k * k * k * a[2];
if (map1.find(0- temp) == map1.end())
{
continue;
}
else
{
ans += map1[0- temp];
}
}
}
}
printf("%d\n",ans);
}
}