UVA10719Quotient Polynomial

来源:互联网 发布:程序员女神 赵洁琼 编辑:程序博客网 时间:2024/05/21 21:50

UVA-10719

题意:给出p(x)的系数和一个数字k,求一个比p(x)少一次就的q(x),使得p(x)=(x-k)*q(x)+r。
解题思路:用待定系数可以知道,q(x)中 x^n-1 的系数b[n-1] 会等于p(x)中 x^n 的系数a[n]。
然后可以推出-k*b[n-1]+b[n-2] =a[n-1] —-> b[n-2]=a[n-1]+k*b[n-1]。
然后正向存,x^n的系数为a[1],那么对于每个b[i]会有b[i]=a[i]+k*b[i-1];b[n]就是r。

/*************************************************************************    > File Name: UVA-10719.cpp    > Author: Narsh    >     > Created Time: 2016年07月15日 星期五 09时38分42秒 ************************************************************************/#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;int a[10060],b[10060],k,n;char c;int main () {    while (scanf("%d\n",&k) != EOF) {        c=' ';        n=0;        b[0]=0;        while (c != '\n' ) scanf("%d%c",&a[++n],&c);        for (int i = 1; i <= n; i++)            b[i]=a[i]+k*b[i-1];        printf("q(x):");        for (int i = 1; i < n; i++)            printf(" %d",b[i]);        printf("\nr = %d\n\n",b[n]);    }}
0 0
原创粉丝点击