(Markdown编辑器复制这个修改太麻烦,索性直接粘贴网址了...)
网址如下:
洛谷 P1067 多项式输出
这是个简单的模拟题,不算复杂。题目大意就是给你一个数 n ,以及 n + 1 项系数,以降幂的方式输出对应的一元n次多项式。需要注意的地方有:
代码如下:
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <cmath>
#include <stack>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <utility>
#define ll long long
using namespace std ;
int main(){
int t ;
cin >> t ;
int n = t ;
int *a = new int[n+10] ;
for ( int i = 0 ; i <= n ; i ++ ){
cin >> a[i] ;
}
for ( int i = 0 ; i <= t ; i ++ ){
if ( n == 0 ){
if ( a[i] > 0 ){
printf("+%d" , a[i]) ;
}
else if ( a[i] < 0 ){
printf("%d" , a[i]) ;
}else{
break ;
}
}else{
if ( a[i] > 0 ){
if ( i == 0 ){
if ( n == 1 ){
if ( a[i] == 1 ){
printf("x") ;
n -- ;
}else{
printf("%dx" , a[i]) ;
n -- ;
}
}else{
if ( a[i] == 1 ){
printf("x^%d" , n --) ;
}else{
printf("%dx^%d" , a[i] , n --) ;
}
}
}else{
if ( n == 1 ){
if ( a[i] == 1 ){
printf("+x") ;
n -- ;
}else{
printf("+%dx" , a[i]) ;
n -- ;
}
}
else{
if ( a[i] == 1 ){
printf("+x^%d" , n --) ;
}else{
printf("+%dx^%d" , a[i] , n --) ;
}
}
}
}else if ( a[i] < 0 ){
if ( n == 1 ){
if ( a[i] == -1 ){
printf("-x") ;
n -- ;
}else{
printf("%dx" , a[i]) ;
n -- ;
}
}else{
if ( a[i] == -1 ){
printf("-x^%d" , n --) ;
}else{
printf("%dx^%d" , a[i] , n --) ;
}
}
}else{
n -- ;
}
}
}
return 0 ;
}
原文:https://www.cnblogs.com/Cantredo/p/9781173.html