题目大意:多项式 p(x)=(x-k)q(x)+r,给出 k 和 p(x)求 q(x) 和 r。
解题思路:待定系数,推得 b[i]=a[i]+k*a[i-1],其中a 为 p 的系数,b 为 q 的系数。
k 是 (x-k) 的 k,不是 k 次方,被样例误导……
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;
int a[100000], b[100000];
int main() {
int k;
while(scanf("%d", &k) != EOF) {
int r ,n = 0;
char c = '0';
while(c != '\n')
scanf("%d%c", &a[n++], &c);
b[0] = a[0];
for (int i = 1; i < n; i++)
b[i] = a[i] + k * b[i-1];
printf("q(x):");
for (int i = 0; i < n - 1; i++)
printf(" %d", b[i]);
printf("\nr = %d\n\n", b[n-1]);
}
return 0;
}