輸入:以指數遞減方式給出非零項的係數與指數(整數,絕對值 ≤ 1000),空格分隔。
輸出:同格式輸出導數非零項;零多項式輸出 0 0;結尾不得有多餘空格。
項 a * x^n 的導數為 a*n * x^(n-1)。常數項(n=0)導數為 0,直接丟棄。
coef, exp,直到 EOF。exp != 0,計算 new_coef = coef * exp, new_exp = exp - 1,存入結果列表。printf 控制空格:第一項前無空格,其後每項前加一空格。0 0。#include <stdio.h>
#include <stdlib.h>
#define MAX_TERMS 1000
int main() {
int coef, exp;
int out_coef[MAX_TERMS], out_exp[MAX_TERMS];
int cnt = 0;
while (scanf("%d %d", &coef, &exp) == 2) {
if (exp != 0) {
out_coef[cnt] = coef * exp;
out_exp[cnt] = exp - 1;
cnt++;
}
}
if (cnt == 0) {
printf("0 0");
} else {
for (int i = 0; i < cnt; i++) {
if (i) printf(" ");
printf("%d %d", out_coef[i], out_exp[i]);
}
}
return 0;
}
| 輸入 | 輸出 |
|---|---|
3 4 -5 2 6 1 -2 0 | 12 3 -10 1 6 0 |
5 0 | 0 0 |
1 5 -1 5 | 0 0 (合併後係數為0) |
if (i) printf(" ") 技巧實現。這道題核心在於「讀一項、算一項、存結果、最後格式化輸出」,代碼極其精簡,是文件/流式處理的典型範例。