零基础学习Java语言——5、数组

简介: 零基础学习Java语言——5、数组

1、多项式加法


题目内容:


一个多项式可以表达为x的各次幂与系数乘积的和,比如:


2x6+3x5+12x3+6x+20


现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。


程序要处理的幂最大为100。


输入格式:


总共要输入两个多项式,每个多项式的输入格式如下:


每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是0次幂。(理解重点,两次0次幂即退出输入)


注意第一行和最后一行之间不一定按照幂次降低顺序排列;如果某个幂次的系数为0,就不出现在输入数据中了;0次幂的系数为0时还是会出现在输入数据中。


输出格式:


从最高幂开始依次降到0幂,如:


2x6+3x5+12x3-6x+20


注意其中的x是小写字母x,而且所有的符号之间都没有空格,如果某个幂的系数为0则不需要有那项。


输入样例:


6 2


5 3


3 12


1 6


0 20


6 2


5 3


2 12


1 6


0 20


输出样例:


4x6+6x5+12x3+12x2+12x+40


题:

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int MaxPow = 101;
        String Result = "";
        int[][] Buf = new int[MaxPow][2];
        int PowValue,Value;
        int cnt = 0;
       while (cnt<2) {
            PowValue = in.nextInt();
            Value = in.nextInt();
            Buf[PowValue][0] = PowValue;
            Buf[PowValue][1] += Value;
            if (PowValue == 0)
            {
                cnt++;
            }
        }
        int firstnum = 0;
        for (int i = Buf.length-1;i >= 0 ;i--)
        {
            if (Buf[i][1] != 0)//系数不为0
            {
                firstnum++;
                if (Buf[i][1] > 0)//系数为正
                {
                    if (Buf[i][1] != 1)
                    {
                        if (firstnum == 1)
                        {
                            Result += Buf[i][1]+"x"+i;
                        }else
                        {
                            if (i > 1)
                            {
                                Result += "+"+Buf[i][1]+"x"+i;
                            }
                            else if(i == 1)
                            {
                                Result += "+"+Buf[i][1]+"x";
                            }
                            else //i=0
                            {
                                Result += "+"+Buf[i][1];
                            }
                        }
                    }
                    else
                    {
                        if (firstnum == 1)
                        {
                            Result += "x"+i;
                        }else
                        {
                            if (i > 1)
                            {
                                Result += "+"+"x"+i;
                            }
                            else if(i == 1)
                            {
                                Result += "+"+"x";
                            }
                            else //i=0
                            {
                                Result += "+"+Buf[i][1];
                            }
                        }
                    }
                }
                else//系数为负
                {
                    if (Buf[i][1] != -1)
                    {
                        if (firstnum == 1)
                        {
                            Result += Buf[i][1]+"x"+i;
                        }
                        else
                        {
                            if (i > 1)
                            {
                                Result += Buf[i][1]+"x"+i;
                            }
                            else if(i == 1)
                            {
                                Result += Buf[i][1]+"x";
                            }
                            else //i=0
                            {
                                Result += Buf[i][1];
                            }
                        }
                    }
                    else
                    {
                        if (firstnum == 1)
                        {
                            Result += "-"+"x"+i;
                        }else
                        {
                            if (i > 1)
                            {
                                Result += "-"+"x"+i;
                            }
                            else if(i == 1)
                            {
                                Result += "-"+"x";
                            }
                            else //i=0
                            {
                                Result += "-"+Buf[i][1];
                            }
                        }
                    }
                }
            }
        }
        if (Result.equals(""))
        {
            Result = "0";
        }
        System.out.println(Result);
    }
}

mooc上的课程习题,边学习边记录!

目录
相关文章
|
1天前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
|
17天前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
42 18
|
1月前
|
监控 Java 调度
【Java学习】多线程&JUC万字超详解
本文详细介绍了多线程的概念和三种实现方式,还有一些常见的成员方法,CPU的调动方式,多线程的生命周期,还有线程安全问题,锁和死锁的概念,以及等待唤醒机制,阻塞队列,多线程的六种状态,线程池等
102 6
【Java学习】多线程&JUC万字超详解
|
14天前
|
存储 Java 数据处理
Java 数组的高级用法
在 Java 中,数组不仅可以存储同类型的数据,还支持多种高级用法,如多维数组(常用于矩阵)、动态创建数组、克隆数组、使用 `java.util.Arrays` 进行排序和搜索、与集合相互转换、增强 for 循环遍历、匿名数组传递以及利用 `Arrays.equals()` 比较数组内容。这些技巧能提升代码的灵活性和可读性,适用于更复杂的数据处理场景。
|
15天前
|
存储 Java
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
34 2
|
6天前
|
存储 Java
java数据结构,线性表顺序存储(数组)的实现
文章介绍了Java中线性表顺序存储(数组)的实现。线性表是数据结构的一种,它使用数组来实现。文章详细描述了线性表的基本操作,如增加、查找、删除、修改元素,以及其他操作如遍历、清空、求长度等。同时,提供了完整的Java代码实现,包括MyList接口和MyLinearList实现类。通过main函数的测试代码,展示了如何使用这些方法操作线性表。
|
2月前
|
Java
Java数组的应用场景
Java数组的应用场景
29 1
|
2月前
|
存储 机器学习/深度学习 Java
Java数组
Java数组
27 1
|
2月前
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
34 0
|
5月前
|
存储 Java
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
下一篇
无影云桌面