Advertisement
gha890826

0319-bonus 簡易多項式

Apr 29th, 2021 (edited)
737
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.29 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.     int in[9];
  7.     while(cin>>in[0])
  8.     {
  9.         for(int i=1;i<9;i++)
  10.         {
  11.             cin>>in[i];
  12.         }
  13.        
  14.         bool first=1;
  15.         for(int i=0;i<9;i++)
  16.         {
  17.             if(in[i]>0)
  18.             {
  19.                 if(!first)
  20.                 {
  21.                     cout<<" + ";
  22.                 }
  23.                 if(in[i]!=1||8-i==0)
  24.                     cout<<in[i];
  25.                 if(8-i==1)
  26.                 {
  27.                     cout<<"x";
  28.                 }
  29.                 else if(8-i!=0)
  30.                 {
  31.                     cout<<"x^"<<8-i;
  32.                 }
  33.                 first=0;
  34.             }
  35.             else if(in[i]<0)
  36.             {
  37.                 if(!first)
  38.                 {
  39.                     cout<<" - ";
  40.                 }
  41.                 else
  42.                 {
  43.                     cout<<"-";
  44.                 }
  45.                 if(in[i]!=-1||8-i==0)
  46.                     cout<<-in[i];
  47.                 if(8-i==1)
  48.                 {
  49.                     cout<<"x";
  50.                 }
  51.                 else if(8-i!=0)
  52.                 {
  53.                     cout<<"x^"<<8-i;
  54.                 }
  55.                 first=0;
  56.             }
  57.             else if(i==8&&in[8]==0&&first)
  58.             {
  59.                 cout<<"0";
  60.             }
  61.         }
  62.         cout<<endl;
  63.     }
  64. }
  65.  
  66. //給你一個數學多項式的係數,從8次方到0次方。你的任務是把一些不需要的項次拿掉,然後以易讀的格式來輸出。例如:給你 0, 0, 0, 1, 22, -333, 0, 1, -1這9個係數,你應該要產生這樣的輸出: x^5 + 22x^4 - 333x^3 + x - 1
  67. //以下是詳細格式的規則:
  68. //項次必須按降冪出現
  69. //指數部分出現在^符號之後
  70. //常數項只要出現常數部分就好了,不需有x^0
  71. //只有係數非0的項次才需出現。如果所有的係數都是0,那只要輸出常數項就可以了
  72. //介於項次之間的+號和-號兩邊各有一空白字元
  73. //假如第一項的係數是正的,那麼該係數不需要符號。如果第一項的係數是負的,那該係數必須有-這個符號。例如:-7x^2 + 30x + 66
  74. //若係數為負,則以減一個正數來表示(除了上面第6條所提到的第一項之外),而非以加一個負數來表示。例如:x^2 + -3x 這樣的表示法是錯誤的,應該是:x^2 - 3x才對
  75. //1或-1,除了常數項之外都不應該出現。例如:-1x^3 + 1x^2 + 3x^1 - 1 這樣的表示法是錯誤的,應該是:-x^3 + x^2 + 3x - 1 才對
  76. //
  77. //輸入說明
  78. //每組測試資料一列,含有9個整數(絕對值都小於1000)。串流結束表示測資結束。
  79. //
  80. //輸出說明
  81. //對每一組資料,依照上面的規則產生對應的多項式。
  82. //
  83. //範例輸入
  84. //0 0 0 1 22 -333 0 1 -1
  85. //0 0 0 0 0 0 -55 5 0
  86. //
  87. //範例輸出
  88. //x^5 + 22x^4 - 333x^3 + x - 1
  89. //-55x^2 + 5x
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement