CSP历年复赛题-P1067 [NOIP2009 普及组] 多项式输出
原题链接:https://www.luogu.com.cn/problem/P1067
题意解读:
模拟法依次输出多项式内容即可,但是需要考虑的周全,主要有以下关键点:
1、系数为0时不输出多项式
2、第一个符号,只有负号才输出
3、次数不为0时,不输出为1的系数;次数为0时,输出所有系数
4、次数为1时,不输出次数;次数为0时不输出x^次数;次数大于1时,才输出完整x^次数
100分代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
string result = "";
int a;
bool first = true; //是否第一次输出符号
for(int i = 1; i <= n + 1; i++)
{
cin >> a;
int k = n - i + 1; //多项式的次数
if(a) //如果系数不为0才输出
{
if(first)
{
if(a < 0) cout << "-"; //如果第一次输出符号,只输出负号
first = false; //同时改变条件变成不是第一次
}
else cout << (a > 0 ? '+' : '-'); //如果不是第一次输出符号,正负都输出
if(abs(a) != 1 || !k) cout << abs(a); //系数绝对值不为1,或者次数是0,输出系数绝对值
if(k == 1) cout << "x"; //次数为1,只输出x
if(k > 1) cout << "x^" << k; //次数大于1,输出x^次数
}
}
return 0;
}
分类:
CSP-J复赛真题解析
标签:
模拟法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?