《程序设计入门—Java语言.翁恺》第五周编程作业(1)-多项式加法
来源:互联网 发布:电动牙刷 知乎 推荐 编辑:程序博客网 时间:2024/06/05 14:39
题目内容:
一个多项式可以表达为x的各次幂与系数乘积的和,比如:
现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。
程序要处理的幂最大为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
一个多项式可以表达为x的各次幂与系数乘积的和,比如:
现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。
程序要处理的幂最大为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 Duoxiangshi {public static void main(String[] args) {// TODO Auto-generated method stubint []a=new int[101];//用来存放第一个多项式的系数int []b=new int[101];//用来存放第二个多项式的系数int []c=new int[101];//用来存放合并后的多项式次数int mi1;//第一个多项式的幂指数int xishu1;//第一个多项式的系数int mi2;//第二个多项式的幂指数int xishu2;//第二个多项式的系数int isFirstout=1;Scanner in= new Scanner(System.in);//读入第一个多项式do{mi1=in.nextInt();xishu1=in.nextInt();for(int i=0;i<a.length;i++){if(i==mi1){a[i]=xishu1;break;}}}while(mi1!=0);//读入第二个多项式do{mi2=in.nextInt();xishu2=in.nextInt();for(int i=0;i<a.length;i++){if(i==mi2){b[i]=xishu2;break;}}}while(mi2!=0);//合并系数for(int i=0;i<c.length;i++){c[i]=(a[i]+b[i]);}//输出多项式for(int i=100;i>1;i--){if(c[i]!=0){ if (isFirstout==1) { //当第一次输出时 if(c[i]!=1&&c[i]!=-1){//如果系数不为1和-1,直接输出系数 System.out.print(c[i]+"x"+i); }if(c[i]==1){//如果系数为1,则不输出系数 System.out.print("x"+i);}if(c[i]==-1){//如果系数为-1,则输出-号 System.out.print("-x"+i);} isFirstout = 0; //更新状态 } else {//不是第一次输出 if (c[i]> 1) {//如果系数大于1,则先输出一个+ System.out.print("+"); System.out.print(c[i]+"x"+i); }else if(c[i]<-1){//如果系数为负数 System.out.print(c[i]+"x"+i); } else if(c[i]==-1){//如果系数为-1 System.out.print("-x"+i); } else if(c[i]==1){//如果系数为1 System.out.print("+"); System.out.print("x"+i); } } }}//判断c[1]if(c[1]!=0){if(isFirstout==1){//判断是否为第一次输出if(c[1]!=1&&c[1]!=-1){System.out.print(c[1]+"x");}else if(c[1]==1){System.out.print("x");}else if(c[1]==-1){System.out.print("-x");}isFirstout=0;}//如果不是第一次输出else if(c[1]>1){System.out.print("+");System.out.print(c[1]+"x");}else if(c[1]<-1){System.out.print(c[1]+"x");}else if(c[1]==1){System.out.print("+");System.out.print("x");}else if(c[1]==-1){System.out.print("-x");}}//判断c[0]if(c[0]!=0){if(isFirstout==1){//判断是否为第一次输出if(c[0]>0){System.out.print(c[0]);}isFirstout=0;}//如果不是第一次输出else if(c[0]>0){System.out.print("+");System.out.print(c[0]);}if(c[0]<0){System.out.print(c[0]);}}else{//判断输入是0 0和0 0这种情况if(isFirstout==1){System.out.print(c[0]);}}}}
阅读全文
1 0
- 《程序设计入门—Java语言.翁恺》第五周编程作业(1)-多项式加法
- 云课堂java-第五周编程作业1-多项式加法
- 《程序设计入门—Java语言.翁恺》第五周编程作业(2)-井字棋
- 《程序设计入门—Java语言.翁恺》第二周编程作业(1)-时间转换
- 《程序设计入门—Java语言.翁恺》第三周编程作业(1)-奇偶个数
- 《程序设计入门—Java语言.翁恺》第六周编程作业(1)-单词长度
- 《程序设计入门—Java语言.翁恺》第七周编程作业(1)-分解质因数
- 《程序设计入门—Java语言.翁恺》第二周编程作业(2)-信号报告
- 《程序设计入门—Java语言.翁恺》第三周编程作业(2)-数字特征值
- 《程序设计入门—Java语言.翁恺》第六周编程作业(2)-GPS数据处理
- 《程序设计入门—Java语言.翁恺》第七周编程作业(2)-完数
- 《程序设计入门—Java语言.翁恺》第四周编程作业(1)-素数和
- 程序设计入门—Java语言_第三周编程作业
- 程序设计入门—Java语言_第二周编程作业
- 《程序设计入门—Java语言.翁恺》第四周编程作业(2)-念整数
- 第五周编程题_多项式加法
- C语言作业-7-1多项式加法
- 程序设计入门—Java语言_第一周编程作业
- 小工具类输出ThreadLocal中的值
- IO流
- 目标分割和检测笔记(OpenCV实例精解)
- c++方言
- (crm-bug)Struts has detected an unhandled exception
- 《程序设计入门—Java语言.翁恺》第五周编程作业(1)-多项式加法
- Rust: codewars的Bleatrix Trotter
- 树莓派3B使用板载蓝牙与手机蓝牙进行Socket通信(RFCOMM)
- Advanced Programming in UNIX Environment Episode 7
- Bomb (数位DP)
- STL讲解 容器(map,set,vector,stack,queue)
- CentOS下使用crontab命令来定时执行任务
- 最小生成树 Freckles
- MongoDB:更改数据库位置(Windows)