MOOC——多项式加法(5分)好难!

news2024/11/15 11:49:43

1.多项式加法(5分)

题目内容:

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

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

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

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

输入格式:

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

每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是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

时间限制:500ms内存限制:32000kb

有问题

这是我自己写的,也不知道哪里错了,怎么改都不对。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[] mi = new int[101];
        int x, y, cnt = 0;
        while (true) {
            x = in.nextInt();
            y = in.nextInt();
            //一直不知道该怎么结束这个输入循环 后来才看到有人写到:读到两次指数为0时,跳出循环
            mi[x] = mi[x] + y;
            if (x == 0) cnt++;
            if (cnt == 2) break;
        }
        for (int i = 100; i > 0; i--) {
            if (mi[i] > 0) {
                if (i == 1)
                    System.out.print(mi[i] + "x+");
                else
                    System.out.print(mi[i] + "x" + i + "+");
            }
        }
        System.out.print(mi[0]);
    }
}

 看到网上的开始按照人家的思路写,依旧错误!!!

不会是输出的错误吧!!!emmmmm仔细研究之后还真是输出的错误。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[] mi = new int[101];
        int x, y;
        int flag = 0;
        while (flag < 2) {
            x = in.nextInt();
            y = in.nextInt();
            if (x == 0) flag++;
            mi[x] = mi[x] + y;
        }

        for (int i = mi.length-1; i > 0; i--) {
            if (mi[i] > 0) {
                if (i == 1)
                    System.out.print(mi[i] + "x+");
                else
                    System.out.print(mi[i] + "x" + i + "+");
            }
        }
        System.out.print(mi[0]);
    }
}

正确答案

1.若是只有常数项,,,

别人写的,先凑活看看,我不会。

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		int a, b;
		final int N = 101;
		int[] arr = new int[N];
		int flag = 0;
		for (int i = 0; i < arr.length; i++)
			arr[i] = 0;
		while (flag < 2) {
			a = in.nextInt();
			b = in.nextInt();
			if (a == 0)
				flag++;
			if(arr[a] != 0)
			arr[a] += b;
			else 
				arr[a] = b;
		}
		int begin = 0;
		for(int i = N-1; i>=0;i--)
		{
			if(arr[i] != 0)
			{
				begin = i;
				break;
			}
		}
		if(begin == 0)
		{
			System.out.print(arr[0]);
		}
		else {
			for(int i = begin; i > -1; i--) {
				if(arr[i] == 0)
					continue;
				if(i == 0)
				{
					if(arr[0] > -1)
					{
						System.out.print("+"+arr[0]);
					}
					else 
					{
						System.out.print(arr[0]);
					}
				}
				else if(i == begin)
				{
					if(arr[i] == 1) 
					{
						System.out.print("x"+i);
					}
					else if(arr[i] == -1)
					{
						System.out.print("-x"+i);
					}
					
					else
					{
						System.out.print(arr[i]+"x"+i);
					}
				}
				else if(i == 1) 
				{
					if(arr[i] == 1) 
					{
						System.out.print("+x");
					}
					else if(arr[i] == -1)
					{
						System.out.print("-x");
					}
					else if(arr[i] > 1)
					{
						System.out.print("+"+arr[i]+"x");
					}
					else 
					{
						System.out.print(arr[i]+"x");
					}
				}
				else if(i > 1)
				{
					if(arr[i] == 1)
					{
						System.out.print("+x"+i);
					}
					else if(arr[i] == -1)
					{
						System.out.print("-x"+i);
					}
					else if(arr[i] > 0)
					{
						System.out.print("+" + arr[i]+"x"+i);
					}
					else {
						System.out.print(arr[i] + "x" + i);
					}
				}
			}
		}	
	}
	
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java GUI 实现的socket在线聊天系统项目源码运行教程

大家好&#xff0c;今天给大家演示一下一个简单的图形界面的聊天程序&#xff0c;上次我们演示的是Java实现的群聊程序&#xff0c;还可以发送文件&#xff0c;今天这个小程序只能聊天&#xff0c;不能发文件&#xff0c;功能非常简单&#xff0c;可在局域网内实现互相聊天&…

html当当书网站 html网上在线书城 html在线小说书籍网页 当当书城网页设计

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

社区系统项目复盘-7

文章目录Spring Security权限控制置顶、加精、删除Redis高级数据类型网站数据统计使用Spring Security进行权限控制&#xff0c;对登录检查功能进行了重写。对不同的登录账号授予不同的权限&#xff0c;实现了置顶、加精、删除功能。使用Redis高级数据类型HyperLogLog和Bitmap实…

2-分类问题 SVM 核函数

目录 一&#xff0c;核函数的引入 二&#xff0c;核函数的定义 三&#xff0c;核函数介绍&#xff1a; 四&#xff0c;核函数总结&#xff1a; 一&#xff0c;核函数的引入 世界上本来没有两个完全一样的物体&#xff0c;对于所有的两个物体&#xff0c;我们可以通过增加维…

ES6 Reflect

前言 此文总结了Reflect对象的部分语法&#xff0c;对比了与Object方法的差异性&#xff0c;希望对你有用。 语法 Reflect与Math类似&#xff0c;都是JavaScript内置对象&#xff0c;提供了工具方法。 typeof Reflect // objectget Reflect.get(target, property, receiver) …

冷热电气多能互补的微能源网鲁棒优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Linux——VIM编辑器(详细)

目录 一、基本简介 1.1 基本简介 1.2 我们怎么使用终端进入到桌面&#xff1f; 1.3 模式间转换 二、一般模式 2.1 操作指令 2.2 什么情况下是一般模式呢&#xff1f; 2.3 怎么进行光标的快速移动&#xff1f; 2.4 复制粘贴操作 2.5 删除操作 三、编辑模式 四、命令行…

Java项目:SSM教师师资管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目包含管理员与教师两种角色&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员角色登录,教师管理,教师授课管理,审批教师的项目开…

【前沿技术RPA】 一文了解UiPath 文件与文件夹自动化功能

&#x1f40b;作者简介&#xff1a;博主是一位.Net开发者&#xff0c;同时也是RPA和低代码平台的践行者。 &#x1f42c;个人主页&#xff1a;会敲键盘的肘子 &#x1f430;系列专栏&#xff1a;UiPath &#x1f980;专栏简介&#xff1a;UiPath在传统的RPA&#xff08;Robotic…

[YOLOv7/YOLOv5系列改进NO.40]融入适配GPU的轻量级 G-GhostNet

文章目录前言一、解决问题二、基本原理三、​添加方法四、总结前言 作为当前先进的深度学习目标检测算法YOLOv7&#xff0c;已经集合了大量的trick&#xff0c;但是还是有提高和改进的空间&#xff0c;针对具体应用场景下的检测难点&#xff0c;可以不同的改进方法。此后的系列…

头歌计算机组成原理汉字字库存储芯片扩展实验

全部答案点击底部 <?xml version"1.0" encoding"UTF-8" standalone"no"?> <project source"2.15.0.2.exe" version"1.0"> This file is intended to be loaded by Logisim http://logisim.altervista.org &…

如何在 Spring 或 Spring Boot 中使用键集分页

介绍 在本文中&#xff0c;我将向您展示如何在 Spring 或 Spring Boot 中使用键集分页技术。 虽然 Spring DataPagingAndSortingRepository提供的基于偏移量的默认分页在许多情况下很有用&#xff0c;但如果您必须迭代大型结果集&#xff0c;那么键集分页或查找方法技术可以提…

使用awk聚合和排序

用awk聚合和排序 文章目录用awk聚合和排序一、需求1.1 源文件格式1.2 需求二、用awk实现2.1 写法2.2 效果一、需求 1.1 源文件格式 一份csv文件&#xff08;默认逗号分隔&#xff09;一共五列&#xff0c;其中一列是用户名文件名&#xff1a;日志文件.csv type日记idusernam…

Android使用ListView,DrawerLayout实现简单注册功能界面

1.效果展示 2.实现 1.主页面activity_main.xml 主页面就是简单的几个TextView和EditText以及单选框组成的一个注册表单。 <?xml version"1.0" encoding"utf-8"?> <LinearLayoutxmlns:android"http://schemas.android.com/apk/res/andro…

[附源码]JAVA毕业设计口腔医院网站(系统+LW)

[附源码]JAVA毕业设计口腔医院网站&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&…

java通过lock实现同步锁

这里我们是一个卖票的演示代码 其实 同步锁 远不止一个synchronized 它本身有一个 加上锁 和释放锁的过程 为了 让我们更好的理解这个过程 JDK5之后 为我们提供了一个单独的锁工具 lock lock是一个接口 他提供了 synchronized 方法 和 更广泛的语句操作 lock方法 获得锁 unl…

【C语言】函数传参与指针理解

文章目录指针与变量注意指针的本质指针和变量的用法函数与传参传变量与传指针的区别传变量与传指针的时机指针与变量 大三&#xff0c;但是C语言。目标&#xff1a;高屋建瓴&#xff0c;深入浅出。 注意 所有人在最开始学C语言的时候&#xff0c;老师都会和你说指针指向一个…

[附源码]JAVA毕业设计课程答疑系统(系统+LW)

[附源码]JAVA毕业设计课程答疑系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&…

LLM.int8()——自适应混合精度量化方法

Paper地址&#xff1a;https://arxiv.org/abs/2208.07339 GitHub链接&#xff1a;GitHub - TimDettmers/bitsandbytes: 8-bit CUDA functions for PyTorch 随着模型参数规模的增加&#xff0c;大模型&#xff08;如GPT-3&#xff0c;OPT-175B等NLP稠密大模型&#xff09;的实际…

某验三代滑块流程分析

一、请求流程 slide-float.html 首先请求了个HTML文本jquery.js 拿回一个jQuery的jsgt.js 拿回gt.js 像是某验的网址信息register-slide?t1669432270469 一个请求、携带时间戳。返回challenge gt等信息gettype.php 获取验证码类型 携带gtfullpage.9.1.0.js 滑块js代码get.php …