一元稀疏多项式计算器(Java)

本文介绍了一种使用Java实现的一元稀疏多项式计算器,采用带表头结点的单链表存储多项式。计算器具备输入多项式、输出多项式、相加、相减等基本功能,并提供了计算多项式在特定值处的结果、导函数及乘积等选作内容。测试数据包括多个多项式运算的例子。
摘要由CSDN通过智能技术生成

要求:

一元稀疏多项式计算器

【问题描述】 设计一个一元稀疏多项式简单计算器。

【基本要求】一元稀疏多项式简单计算器的基本功能是:

(1) 输入并建立多项式 ;

(2) 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,ci,ei,其中n是多项式的项数,ci 和ei,分别是第 i 项的系数和指数,序列按指数降序排列;

(3) 多项式a和b相加,建立多项式a +b;

(4) 多项式a和b相减,建立多项式a -b 。

【测试数据】
1)(2x+5x8-3.1x11) + (7-5x8+11x9)=(-3.1x11+11x9+2x+7)
2)(6x-3-x+4.4x2-1.2x9) -(-6x-3+5.4x2-x2+7.8x15)=(-7.8x15-1.2x9+12x-3-x)
3)(1 +x + x2+x3+x4+x5)+(-x3-x4)=(1+x+x2+x5)
4)(x+x3)+(-x-x3)=0
5)(x+x100)+(x100 +x200)=(x+2x100+x200)
6)(x+x2+x3)+0=x+x2+x3
7) 互换上述测试数据中的前后两个多项式

【实现提示】 用带表头结点的单链表存储多项式。

【选作内容】
1) 计算多项式在x处的值。
2) 求多项式 a 的导函数 。
3) 多项式a和b相乘,建立乘积多项式ab 。
4) 多项式的输出形式为类数学表达式。例如 ,多项式 -3x8+6x3-18 的输出形式为-3x8+6x3-18,x15+(-8)x7-14的输出形式为s15+(-8)x7-14。注意,数值为1的非零次项的输出形式中略去系数1,如项1x8的输出形式为x8,项 -1x3的输出形式为-x3。
**

实现:

Main类

package usps;

import java.util.Scanner;

public class Main
{
   
    public static void main(String[] args)
    {
   
        Scanner in=new Scanner(System.in);
        Polynomial poly = new Polynomial();
        int num;
        do
        {
   //菜单
            System.out.println("\n                  一元稀疏多项式计算器");
            System.out.println("——————————————————————————————————————————————————————————");
            System.out.println(  "1.建立多项式a      2.建立多项式a+b       3.建立多项式a-b  " +
                    "\n4.建立多项式axb    5.多项式a的导函数      6.多项式在x处的值\n7.退出");
            System.out.println("——————————————————————————————————————————————————————————");
            System.out.print("命令: ");
            num=in.nextInt();
            switch (num)//命令
            {
   
                case 1://建立多项式
                {
   
                    System.out.println("请输入多项式:");
                    System.out.println("项的个数n <系数 指数>*n");
                    LinkList list = poly.inPoly();
                    System.out.print("\n多项式: ");
                    list.allPut();
                }break;

                case 2://多项式 a + b
                {
   
                    System.out.println("请输入多项式a:");
                    System.out.println("项的个数n <系数 指数>*n");
                    LinkList listA = poly.inPoly();
                    System.out.println("请输入多项式b:");
                    LinkList listB = poly.inPoly();
                    System.out.print("\n多项式 a : ");
                    listA.allPut();
                    System.out.print("\n多项式 b : ");
                    listB.allPut();
                    System.out.print("\n多项式 a+b : ");
                    poly.addPoly(listA,listB).allPut();
                }break;

                case 3://多项式 a - b
                {
   
                    System.out.println("请输入多项式a:");
                    System.out.println("项的个数n <系数 指数>*n");
                    LinkList listA = poly.inPoly();
                    System.out.println("请输入多项式b:");
                    LinkList listB = poly.inPoly();
                    System.out.print("\n多项式 a : ");
                    listA.allPut();
                    System.out.print("\n多项式 b : ");
                    listB.allPut();
                    System.out.print("\n多项式 a-b : ");
                    poly.minusPoly(listA,listB).allPut();
                }break;

                case 4://建立多项式axb
                {
   
                    System.out.println("请输入多项式a:");
                    System.out.println("项的个数n <系数 指数>*n");
                    LinkList listA = poly.inPoly();
                    System.out.println("请输入多项式b:");
             
  • 13
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值