扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
主函数和普通函数一样,不一样的地方只有main这个函数名以及后面的参数,主函数后面的参数是命令行参数,一般用不到,主函数中没什么特殊规则,普通函数能写出来,主函数就也能写出来 ,话说,我并不清楚你的子函数是做什么的,也不知道你的主函数要做什么,所以,如果你想让写主函数,请把子函数功能与主函数功能说一下
黔西网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
#ifndef
Polynomial_H
#define
Polynomial_H
#include
"List.h"
class
Term
{
public:
int
coef;
int
exp;
Term()
:
coef(0),
exp(0)
{}
Term(int
c,
int
e)
:
coef(c),
exp(e)
{}
Term(int
c)
:
coef(c),
exp(0)
{}
};
class
Polynomial
:
ListTerm
{
public:
void
Input()
{
cout
endl
"输入多项式的各项系数和指数";
cout
endl
"注意:请按降序输入各项,输入系数0表示结束"
endl;
int
coef,
exp;
for(int
i
=
1;
;
i
)
{
cout
"第"
i
"项的系数:";
cin
coef;
if
(coef)
{
cout
"指数:";
cin
exp;
Term
term(coef,
exp);
Insert(term);
}
else
break;
}
}
void
Print()
{
cout
endl;
First();
if
(!IsEmpty())
{
Term
*p
=
Next();
cout
p-coef;
if
(p-exp)
{
cout
"x";
if
(p-exp
!=
1)
cout
"^"
p-exp;
}
while
(Next()
!=
NULL)
{
p
=
Get();
if
(p-coef
0)
cout
"
";
cout
p-coef;
if
(p-exp)
{
cout
"x";
if
(p-exp
!=
1)
cout
"^"
p-exp;
}
}
}
cout
endl;
}
friend
void
PolyAdd
(Polynomial
大概看了一下,楼主的意思是
通过CreatPolyn创建一个链表,而且貌似元素是根据expn的值有序排列的
创建时首先搜索待插入元素的关键字是否存在,不存在才插入
插入的时候,楼主不想再做一次比较了,因此搞了个q想来保存插入的位置
抛开逻辑不谈,如果这三个函数的实现与q的定义在一个文件中,那么q就是全局变量,可以被本文件的代码所访问,这一点建议楼主学习一下全局变量的相关知识。
关于效率,其实再次搜索一次也无妨,因为while(p e.expnp-data.expn)
与while (p-next iq)的执行效率没有很大的差别。而且不在这里使用全局变量,也可以增加各个功能函数间的独立性,易于阅读代码,减少bug的出现。
这个题目根据求二项展开式的求解频度有两种不同情况:一、在应用中求二项展开式的需求只有少数几次;二、在应用中求二项展开式的需求是经常出现的,且指数是随机的。对第一种情况,则在求展开式时求各项系数,求的时候只保存杨辉三角中的某一行,不保存整个杨辉三角;而对于第二种情况,则为了效率考虑,一般根据问题的规模(指数的可能最大值)先求出适当规模的杨辉三角,并将该杨辉三角保存在一个数组中,以后每次遇到需展开二项式时,直接到杨辉三角数组中查系数即可。以下给出第一种情况的解决方案。
#include stdio.h
void Coef(int *coef, int n)
{
int a, b, i, j;
coef[0] = 1;
for(i = 1; i = n; i++)
{
for(a = 0, b = coef[0], j = 0; j i; j++)
{
coef[j] = a + b;
a = b;
b = coef[j + 1];
}
coef[i] = 1;
}
}
void main()
{
int coef[1000], n, i;
scanf("%d", n);
Coef(coef, n);
printf("(a+b)^%d=", n);
if(n == 0)
{
printf("1\n");
return;
}
printf("a");
if(n 1)
{
printf("^%d", n);
for(i = 1; i n; i++)
{
printf("+");
if(coef[i] 1) printf("%d", coef[i]);
printf("a");
if((n - i) 1) printf("^%d", n - i);
printf("b");
if(i 1) printf("^%d", i);
}
}
printf("+b");
if(n 1) printf("^%d", n);
printf("\n");
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流