一元多项式化简
来源:互联网 发布:linux nginx 是否启动 编辑:程序博客网 时间:2024/05/22 13:05
/******************************************************************************
Copyright (C), 2001-2011, Huawei Tech. Co., Ltd.
******************************************************************************
File Name :
Version :
Author :
Created : 2010/9
Last Modified :
Description :
Function List :
History :
1.Date : 2010/9
Author :
Modification: Created file
******************************************************************************/
#include <string.h>
#include <stdio.h>
/******************************************************************************************************
Description : 对输入的一元多项式,进行同类项合并,输出处理后的一元多项式
Prototype : void OrderPolynomial (char* InputString, char* OutputString)
Input Param : char* InputString 输入多项式字符串
Output Param : char* OutputString 输出多项式字符串
Return Value : void
********************************************************************************************************/
void zhuanhua (int* a, char* OutputString,int n)
{
int i=1;
int j;
char b[10];
int num=0;
if(a[0]==0)
i=2;
else
{
if(a[0]<0)
{
OutputString[0]='-';
a[0]=-1*a[0];
++num;
}
sprintf(b,"%d",a[0]);
for(j=0;b[j]!='\0';++j)
{
OutputString[num]=b[j];
++num;
}
OutputString[num]='X';
++num;
OutputString[num]='^';
++num;
}
while((i<=n))
{
if((a[i]==0)&&(i%2==0))
{
i=i+2;
continue;
}
if((i+1)<=n)
if((a[i+1]==-1)&&((i+1)%2==1))
break;
if(i%2==1)
{
sprintf(b,"%d",a[i]);
for(j=0;b[j]!='\0';++j)
{
OutputString[num]=b[j];
++num;
}
}
if(i%2==0)
{
if(a[i]<0)
{
OutputString[num]='-';
a[i]=-1*a[i];
++num;
}
else
{
OutputString[num]='+';
++num;
}
sprintf(b,"%d",a[i]);
for(j=0;b[j]!='\0';++j)
{
OutputString[num]=b[j];
++num;
}
OutputString[num]='X';
++num;
OutputString[num]='^';
++num;
}
++i;
}
OutputString[num]='\0';
}
void OrderPolynomial (char* InputString, char* OutputString)
{
/*在这里实现功能*/
int a[40];
int i,j,b,flag;
int num=0;
for(i=0;i<40;++i)
{
a[i]=0;
}
if(InputString[0]=='-')
flag=-1;
else
{
a[0]=InputString[0]-'0';
flag=1;
}
for(i=1;InputString[i]!='\0';++i)
{
if((InputString[i]>='0')&&(InputString[i]<='9'))
{
a[num]=10*a[num]+InputString[i]-'0';
}
if(InputString[i]=='X')
{
a[num]=a[num]*flag;
++num;
}
if(InputString[i]=='-')
{
flag=-1;
++num;
}
if(InputString[i]=='+')
{
flag=1;
++num;
}
}
for(i=1;i<=num;i=i+2)
{
for(j=i+2;j<=num;j=j+2)
{
if(a[i]==a[j])
{
a[i-1]=a[i-1]+a[j-1];
a[j]=-1;
}
}
}
for(i=1;i<=num;i=i+2)
{
for(j=i+2;j<=num;j=j+2)
{
if(a[i]<a[j])
{
b=a[i];a[i]=a[j];a[j]=b;
b=a[i-1];a[i-1]=a[j-1];a[j-1]=b;
}
}
}
zhuanhua(a,OutputString,num);
return;
}
Copyright (C), 2001-2011, Huawei Tech. Co., Ltd.
******************************************************************************
File Name :
Version :
Author :
Created : 2010/9
Last Modified :
Description :
Function List :
History :
1.Date : 2010/9
Author :
Modification: Created file
******************************************************************************/
#include <string.h>
#include <stdio.h>
/******************************************************************************************************
Description : 对输入的一元多项式,进行同类项合并,输出处理后的一元多项式
Prototype : void OrderPolynomial (char* InputString, char* OutputString)
Input Param : char* InputString 输入多项式字符串
Output Param : char* OutputString 输出多项式字符串
Return Value : void
********************************************************************************************************/
void zhuanhua (int* a, char* OutputString,int n)
{
int i=1;
int j;
char b[10];
int num=0;
if(a[0]==0)
i=2;
else
{
if(a[0]<0)
{
OutputString[0]='-';
a[0]=-1*a[0];
++num;
}
sprintf(b,"%d",a[0]);
for(j=0;b[j]!='\0';++j)
{
OutputString[num]=b[j];
++num;
}
OutputString[num]='X';
++num;
OutputString[num]='^';
++num;
}
while((i<=n))
{
if((a[i]==0)&&(i%2==0))
{
i=i+2;
continue;
}
if((i+1)<=n)
if((a[i+1]==-1)&&((i+1)%2==1))
break;
if(i%2==1)
{
sprintf(b,"%d",a[i]);
for(j=0;b[j]!='\0';++j)
{
OutputString[num]=b[j];
++num;
}
}
if(i%2==0)
{
if(a[i]<0)
{
OutputString[num]='-';
a[i]=-1*a[i];
++num;
}
else
{
OutputString[num]='+';
++num;
}
sprintf(b,"%d",a[i]);
for(j=0;b[j]!='\0';++j)
{
OutputString[num]=b[j];
++num;
}
OutputString[num]='X';
++num;
OutputString[num]='^';
++num;
}
++i;
}
OutputString[num]='\0';
}
void OrderPolynomial (char* InputString, char* OutputString)
{
/*在这里实现功能*/
int a[40];
int i,j,b,flag;
int num=0;
for(i=0;i<40;++i)
{
a[i]=0;
}
if(InputString[0]=='-')
flag=-1;
else
{
a[0]=InputString[0]-'0';
flag=1;
}
for(i=1;InputString[i]!='\0';++i)
{
if((InputString[i]>='0')&&(InputString[i]<='9'))
{
a[num]=10*a[num]+InputString[i]-'0';
}
if(InputString[i]=='X')
{
a[num]=a[num]*flag;
++num;
}
if(InputString[i]=='-')
{
flag=-1;
++num;
}
if(InputString[i]=='+')
{
flag=1;
++num;
}
}
for(i=1;i<=num;i=i+2)
{
for(j=i+2;j<=num;j=j+2)
{
if(a[i]==a[j])
{
a[i-1]=a[i-1]+a[j-1];
a[j]=-1;
}
}
}
for(i=1;i<=num;i=i+2)
{
for(j=i+2;j<=num;j=j+2)
{
if(a[i]<a[j])
{
b=a[i];a[i]=a[j];a[j]=b;
b=a[i-1];a[i-1]=a[j-1];a[j-1]=b;
}
}
}
zhuanhua(a,OutputString,num);
return;
}
0 0
- 一元多项式化简
- 一元多项式化简
- 一元多项式化简
- [华为机试练习题]71.一元多项式化简
- 一元多项式
- 一元多项式
- 一元多项式
- 一元多项式
- 华为面试题:一元多项式的化简 C语言实现源码
- 一元稀疏多项式计算器
- 一元稀疏多项式
- 一元多项式加法
- 一元多项式的实现
- 一元多项式相加
- 一元多项式运算
- 数据结构 一元多项式相加
- 一元多项式的运算
- 一元多项式的幂
- SCU2016-01 F贪心
- 应用node.js+mongodb数据库实现一个mvc架构的web项目
- LDA比较好的理解
- POJ3714 Raid
- 关于C语言给变量分配地址
- 一元多项式化简
- Python安装Pip出现的问题
- OC中声明Block的几种方式
- 64汇编写程序
- 数据结构试验—链表实现数据信息录入
- 设计模式-装饰模式
- swift教程【入门】 使用swift REPL编写第一个swift程序
- SWIFT实现图文混排
- ListView 点击事件