日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PAT乙类1010之1010 一元多项式求导

發布時間:2024/7/5 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PAT乙类1010之1010 一元多项式求导 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、題目

設計函數求一元多項式的導數。(注:X?n(n為整數)的一階導數為nXn?1。)輸入格式: 以指數遞降方式輸入多項式非零項系數和指數(絕對值均為不超過 1000 的整數)。數字間以空格分隔。輸出格式: 以與輸入相同的格式輸出導數多項式非零項的系數和指數。數字間以空格分隔,但結尾不能有多余空格。注意“零多項式”的指數和系數都是 0,但是表示為 0 0。輸入樣例: 3 4 -5 2 6 1 -2 0 輸出樣例: 12 3 -10 1 6 0

二、代碼

方法一、存入數組再處理法
  • 核心函數
  • 判斷何時輸入結束問題!!!
    1)如果數中 包含負數(包含負號和整數兩個字符)、空格、換行,用char數組存儲,如果遇到換行符后結束輸入,是不行的;因為這樣負數沒辦法轉化!!所以要換種思路!!
    2)由于它在輸入的時候第一個是整數,第二個是字符,所以我們每次輸入時候第一個用整形數組賦值,第二個用char賦值;判斷char是不是換行符來結束輸入!!!
    • 分析
      (1)輸入的數據每兩個為一組,所以是i+=2,之后進行處理就行;
      int a = int_num[i] * int_num[i+1];
      int b = int_num[i+1] - 1;
      但是當a為零了,要將數組個數減2
      (2)要特殊處理零特征多項式, 就是常數。 只要b等于零, 就直接輸出"0 0"

    • 易錯點

    #include <iostream> #include <stdio.h> using namespace std;int qiudao(int int_num[], int &n) {for(int i=0; i<n; i+=2) {int a = int_num[i] * int_num[i+1];int b = int_num[i+1] - 1;if(a != 0) {int_num[i] = a;int_num[i+1] = b;}else {n = n - 2;}}return 0;}int main() {int num[1000];int i = 0, j, k=0;int temp;char c;while(cin >> temp) {if(temp > 1000) {return 0;}num[i++] = temp;c = getchar();if(c == '\n') {break; }}if(num[0] == 0 || num[1] == 0) {cout<<"0 0";}else {qiudao(num, i);for(j=0; j<i; j++) {if( j!= i-1){cout<<num[j]<< " ";}else {cout<<num[j];}}}return 0; }
    方法二、不存入直接處理法
    • 核心函數
  • 不存儲,直接按照兩個一組來處理。 cin>>a>>b 如果遇到空格就會根據a、b的類型進行輸入賦值。像本題,壓根不處理空格!!!
    while(cin>>a>>b)見后面附錄
    • 分析
  • 用x來控制是不是零多項式! 如果是直接跳出循環直接輸出,如果不是則將x變為0, 這樣就會正常輸出" "空格
  • #include <iostream> using namespace std;int main(){int a,b;int x = 1;while(cin>>a>>b){if(b == 0)break;if(!x)cout << " ";elsex = 0;cout << a*b << " " <<b-1;}if(x)cout << "0 0";return 0; }

    關于C++中while(cin>>a)

    cin是輸入操作符,cin>>a的過程是先取得從鍵盤的輸入值a,并將a賦給cin,因此while(cin>>a)的意思就是只要輸入的值有效,那么就執行while體內的語句。

    實例設計如下:

    1、統計輸入連續數字的個數,while循環結束 (跳出流對象)的時候,打印最后一個數 。通過檢測其流的狀態來判斷結束;

    (1)若流是有效的,即流未遇到錯誤,那么檢測成功。

    (2)若遇到文件結束符,或遇到一個無效的輸入時(例如本題輸入的值不是一個整數),istream對象的狀態會變為無效,條件就為假。

    總結

    以上是生活随笔為你收集整理的PAT乙类1010之1010 一元多项式求导的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。