Java_多項式加法

来源:https://www.cnblogs.com/songzi-yang/archive/2018/12/04/10067635.html
-Advertisement-
Play Games

題目內容: 一個多項式可以表達為x的各次冪與繫數乘積的和,比如: 2x6+3x5+12x3+6x+20 現在,你的程式要讀入兩個多項式,然後輸出這兩個多項式的和,也就是把對應的冪上的繫數相加然後輸出。 程式要處理的冪最大為100。 輸入格式: 總共要輸入兩個多項式,每個多項式的輸入格式如下: 每行輸 ...


題目內容:

一個多項式可以表達為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
  1 import java.util.Scanner;
  2 
  3 public class Main {
  4 
  5     public static void main(String[] args) {
  6         // TODO Auto-generated method stub
  7         Scanner in = new Scanner(System.in);
  8         int[] a=new int[101];//存放第一個多項式
  9         int[] b=new int[101];//存放第二個多項式
 10         int[] c=new int[101];//存放合併後的多項式
 11         int count=0;//用來統計輸出的項數
 12         int n=0;//n表示冪次
 13         int x=0;//x表示繫數
 14 //        得到第一個多項式
 15         do
 16         {
 17             n=in.nextInt();
 18             x=in.nextInt();
 19             a[n]=x;
 20         }while(n!=0);
 21 //        得到第二個多項式
 22         do
 23         {
 24             n=in.nextInt();
 25             x=in.nextInt();
 26             b[n]=x;
 27         }while(n!=0);
 28 //        合併多項式
 29         for(int i=0;i<101;i++)
 30         {
 31             c[i]=a[i]+b[i];
 32         }
 33 //        輸出冪次為2到100的項
 34         for(int i=100;i>1;i--)
 35         {
 36             if(c[i]!=0)//如果繫數不為零
 37             {
 38                 if(count>0)//如果不是輸出的第一項
 39                 {
 40                     if(c[i]>0)//繫數大於零要輸出+號
 41                     {
 42                         System.out.print("+");
 43                     }
 44                 }
 45                 if(c[i]!=1&&c[i]!=-1)//如果繫數為+-1的話,不能把1輸出來,所以要單獨處理
 46                 {
 47                     System.out.print(c[i]+"x"+i);
 48                 }else if(c[i]==1)//繫數為1時
 49                 {
 50                     System.out.print("x"+i);
 51                 }else//繫數為-1時
 52                 {
 53                     System.out.print("-x"+i);
 54                 }
 55                 count++;
 56             }
 57             else//繫數為零不輸出
 58             {
 59                 continue;
 60             }
 61         }
 62 //        開始處理冪次為1的項
 63         if(c[1]!=0)
 64         {
 65             if(count>0)//非首項
 66             {
 67                 if(c[1]>0)//正項要輸出+號
 68                 {
 69                     System.out.print("+");
 70                 }
 71             }
 72             if(c[1]!=1&&c[1]!=-1)//繫數為+-1同樣要單獨處理
 73             {
 74                 System.out.print(c[1]+"x");
 75             }
 76             else if(c[1]==1)//繫數為1
 77             {
 78                 System.out.print("x");
 79             }
 80             else//xi數為-1時
 81             {
 82                 System.out.print("-x");
 83             }
 84             count++;
 85         }
 86 //        開始處理冪次為0的項
 87         if(c[0]!=0)
 88         {
 89             if(count>0)//非首項
 90             {
 91                 if(c[1]>0)//正項要輸出+號
 92                 {
 93                     System.out.print("+");
 94                 }
 95             }
 96             System.out.print(c[0]);
 97             count++;
 98         }
 99 //        如果之前一個項都沒有輸出
100         if(count==0)
101         {
102             System.out.print("0");
103         }
104     }
105 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ClassLoader 做什麼的? 顧名思義,它是用來載入 Class 的。它負責將 Class 的位元組碼形式轉換成記憶體形式的 Class 對象。位元組碼可以來自於磁碟文件 *.class,也可以是 jar 包里的 *.class,也可以來自遠程伺服器提供的位元組流,位元組碼的本質就是一個位元組數組 []b ...
  • 1.for 迴圈 使用for語句可以遍歷全部元素,例如逐個輸出字元串中的字元,逐個輸出列表中的元素,元組中的元素,集合中的元素(註意賦值時各元素的順序),字典中的鍵……1-1.range迴圈: 這是從range生成的列表裡分別從0開始賦值給i變數,每賦值一次就迴圈一次,一直到列表結束"""" 元組的 ...
  • 【根索引】 【Python索引】 目標 使用PyCharm,完成兩個小實例的編寫和運行。一個是溫度轉換,一個是蟒蛇圖形繪製。 過程 1、先設置project目錄,雖然命名不是很正式,主要不太習慣軟體的目錄結構,好在只是熟悉語言和工具,就先把代碼都放一個目錄下吧。 2、可以打開多個py文件,運行時可以 ...
  • 問: 當用戶登錄某網站後,向伺服器發送一個請求,伺服器如何判斷是這個用戶請求的 首先,你要明白一點,最初http協議在設計的時候,主要面向當時的web1.0網站,他們不需要知道是誰來訪問,只需要向外界提供相應的web服務即可. 但是,在web2.0的網站中,用戶和網站發生相關的信息交互.所以,web ...
  • 方法:__name__ 、__doc__ 函數:wraps() 函數 裝飾器傳參、多個裝飾器,裝飾一個函數 ...
  • String str1 和 str2 所指向的對象在字元串常量池中,是同一個對象。 All literal strings and string valued constant expressions are interned,When the intern method is invoked, i ...
  • 前言 本篇來分析new是怎麼實現的, 使用c++進行在申請對象的時候用到new, 但是為什麼申請對象要用到new, 而不能用malloc, 而有時申請數組的用new或者malloc似乎又都可以, 這裡就來分析一下new實現. new operator, operator new以及placement ...
  • 學習java知識,首先要安裝jdk來配置開發環境和java運行環境,本文介紹一下JDK配置流程和驗證配置成功的方法。 一、配置JDK 1、首先下載jdk1.7壓縮包並解壓到D盤。 2、我的電腦--右鍵--屬性--高級系統設置--高級,單擊環境變數 3、選擇“系統變數”中的新建選項卡 4、在彈出的提示 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...