69,373
社区成员
发帖
与我相关
我的任务
分享
void Traverse_Ploy(int a_n)
{
void Print_Ploy(int* a, int a_n);
int i = 0;
if(a_n == 0)
{
Print_Ploy(f , N);
++num;
return;
}
else
{
for(; i<P; i++)
{
f[a_n-1] = i;
Traverse_Ploy(a_n-1);
}
}
}
#include <iostream>
using namespace std;
#define N 3
#define P 5
int num = 0;
int f[3]={0,1,2};
//f(x)的输出形式
void Print_Poly(int*a, int a_n)
{
int i = 0;
//printf("x^%d", a_n);
cout << "x^" << a_n;
for(i= a_n-1 ; i>0 ; i--)
{
if( a[i]==1 )
{
//printf("+x^%d", i);
cout << "+x^" << i ;
}
//如果系数是1则省略
else
{
//printf("+%dx^%d", a[i], i);
cout << "+" << a[i] << "x^" << i;
}
}
//printf("+%d\n", a[i]);
cout << "+" << a[i] << endl;
//如果是常数项直接输出常数值
}
void Traverse_Ploy(int a_n)
{
int i = 0;
if(a_n == 0)
{
Print_Ploy(f , N);
++num;
return;
}
else
{
for(; i<P; i++)
{
f[a_n-1] = i;
Traverse_Ploy(a_n-1);
}
}
}
void main()
{
Traverse_Ploy(N);
//printf("%d", num);
cout << num << endl;
}