多項式加法-week7-C語言習題集
多項式加法(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
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
/*
1 注意flag的存放,不能放在for迴圈裡面,否則每次for迴圈都置flag=0,導致內層else始終無法執行;
2 判斷條件中,arr[i]與i不要弄混了,這是邏輯錯誤
3 總體思路,先按係數分三類1,每類1裡面,按首項和其他項分類2,每類2裡面再按指數不同分三種處理情況,對應輸出不同格式
*/
int main()
{
int coef,expo;
int cnt=0;
int arr[SIZE];
int i;
for (i=0;i<SIZE;i++){
arr[i]=0;
}
while(scanf("%d %d",&expo,&coef)){
arr[expo] += coef; // 這一步忘了要可以實現重複加,所以要多個+號
if (expo == 0) cnt++;
if (cnt == 2) break;
}
//忘了加for 以便逆序輸出int flag = 0;
//不能放在for迴圈裡面,否則每次for迴圈都置flag=0,導致內層else始終無法執行;
for (i=SIZE-1;i>=0;i--){
if (arr[i]>1 || arr[i] <-1){ //判斷條件中,arr[i]與i不要弄混了,這是邏輯錯誤
if (!flag){
flag = 1;
if (i>1){
printf("%dx%d",arr[i],i);
}
else if (i == 1){
printf("%dx",arr[i]);
}
else{
printf("%d",arr[i]);
}
}
else {
if (i>1){
printf("%+dx%d",arr[i],i);
}
else if (i == 1){
printf("+%dx",arr[i]);
}
else{
printf("+%d",arr[i]);
}
}
}
else if (arr[i] == 1){
flag = 1;
if (!flag){
flag = 1;
if (i>1){
printf("x%d",i);
}
else if (i == 1){
printf("x");
}
else{
printf("1");
}
}
else {
if (i>1){
printf("+x%d",i);
}
else if (i == 1){
printf("+x");
}
else{
printf("+1");
}
}
}
else if (arr[i] == -1){
if(!flag){
flag =1;
if (i>1){
printf("-x%d",i);
}
else if (i == 1){
printf("-x");
}
else {
printf("-1");
}
}
}
}
if (flag == 0)
printf("0");
return 0;
}
相關文章
- 完數-week6-C語言習題集C語言
- 高精度加法(C語言實現)C語言
- 多語言遇到的問題
- 多項式學習筆記筆記
- go語言學習-函式Go函式
- 詳解線性結構 —— 一元多項式的乘法與加法運算
- C語言——幾道習題C語言
- 函式 -- 就要學習 Go 語言函式Go
- 如何學習多個國家語言?
- C語言程式設計-長整數加法運算C語言程式設計
- 正規表示式及多語言操作指南
- 多項式
- Go語言面試題分享:選擇題10道(3)go語言學習Go面試題
- Go語言面試題分享:選擇題10道(1)go語言學習Go面試題
- c語言學習筆記===函式C語言筆記函式
- ssy中學暑假集訓有關數學及多項式學習筆記筆記
- 【C語言練習題】小球反彈問題C語言
- 多項式乘法
- 小白學習Golang(六)Go語言函式Golang函式
- PostgreSQL學習手冊(SQL語言函式)SQL函式
- 一門多正規化的程式語言Scala學習收尾-函式的使用函式
- 【組合數學】多項式定理 ( 多項式係數 | 多重集全排列 | 對應放球子模型方案數 | 多項式係數相關恆等式 )模型恆等式
- go語言面試選擇題11道(4)go語言深入學習Go面試
- SQL Server 值亂碼問題 (多國語言)SQLServer
- SQL SERVER日期格式與多國語言問題SQLServer
- Qt 多語言支援QT
- ModStart多語言支援
- C語言例項解析精粹學習筆記——19C語言筆記
- 數論函式群在數論多項式生成函式集上的作用函式
- C語言sigemptyset()函式:初始化訊號集C語言函式
- C語言函式手冊:c語言庫函式大全|C語言標準函式庫|c語言常用函式查詢C語言函式
- 『齊次3項加法小程式A』
- 史丹佛自然語言處理習題課2---softmax函式詳解自然語言處理函式
- C語言必知內容,不知道的人學C語言寸步難行,C語言學習必知項C語言
- 【Go語言學習】匿名函式與閉包Go函式
- 嵌入式C語言學習筆記2C語言筆記
- C語言學習之認識exit()函式C語言函式
- c語言學習--time庫函式詳解C語言函式