零基础学习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上的课程习题,边学习边记录!

目录
相关文章
|
3月前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
372 0
|
3月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
162 4
|
3月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
327 18
|
3月前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
398 7
|
3月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
262 1
|
4月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
90 5
|
4月前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
172 1
|
存储 Java 编译器
Java语言------图书馆管理系统(入门简略版)
Java语言------图书馆管理系统(入门简略版)
277 0
Java语言------图书馆管理系统(入门简略版)
|
Java
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
190 0
|
JavaScript 前端开发 Java
java语言入门总结
java语言入门总结
213 0