问题 B: 此题乃神题,劝你别做

时间限制: 1 Sec  内存限制: 128 MB
提交: 138  解决: 8
[提交][状态][讨论版]

题目描写叙述

声明:这道题没有涉及不论什么算法!给定函数f = (1) + (2) * b + (3) * c + (4) * d + (5)。

输入

输入数据有多组。 每组数据有5个整数,分别相应函数f 中(1)、(2)、(3)、(4)、(5)。

输出

输出f的表达式。详细看给出的例子输出,不要有多余的符号。

例子输入

2 3 -3 4 -5
1 2 3 -4 5
2 0 2 2 2

例子输出

2+3b-3c+4d-5
1+2b+3c-4d+5
2+2c+2d+2

提示

代码:

//总结:这样的题首先要分两种情况:带不带字母 。还得注意。第一个数 是正数的时候,不用输出+。

//当是字母的时候看看有没有系数为1(或者-1)的项,假设有系数为1(或者-1)的项,那个系数就不用输出了 //然后得看系数是正还是负,假设是负的话。就不用管了,就直接将那一项输出即可了。假设是正的话。还得 //考虑是否输出正号。假设前面的系数都是0。那正号就不用输出了,假设有数,就得输出正号! //还得考虑当全部的系数都是0,那就仅仅能输出0了; //注意:1.字母的系数1(-1仅仅输出负号)不输出。数的话1要输出。 // 2.正号是否输出!

(前面的系数都是0或者是第一项的话就不用输出) // 3.当全部的项都是0的话,不能没有输出!要输出0! // 4.注意数的大小(在hpuoj仅仅能用long long),32位不能满足就仅仅能用long long型来定义了!

#include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> using namespace std; int main() { long long a,b,c,d,e; while(scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&e)!=EOF)//要用long long型进行定义!

{ if(a!=0)//必须推断是否为0,假设是0,则不用输出,否则必须输出 printf("%lld",a); if(b<0)//对后面的数要正负分情况讨论,假设为负数不用输出正号。直接将数输出来即可了 {//可是,又一个问题来了。要是是-1的话,连1都不用输出了,直接输出-b即可了。 if(b==-1) printf("-b"); else//否则得输出那个负数 printf("%lldb",b); } else if(b>0) { if(a!=0)//假设是正数,而且前面有数的话,才干加正号 { printf("+"); } if(b==1)//得推断系数是否是1,是1的话就不用输出1了! printf("b"); else//要是不是1的话。就得将正数输出 printf("%lldb",b); } if(c<0)//c,d和b事实上是一样的,在前面的系数是负数的时候,得分情况输出,看看是-1不是。是-1的话1就不用输出了 {//否则全部的数都得输出! if(c==-1) printf("-c"); else printf("%lldc",c); } else if(c>0)//当为正数的时候,你不但要考虑前面的是否为1,1不输出,并且得考虑正好是否输出。仅仅有前面有数的时候正号才输出! { if(a||b) printf("+"); if(c==1) printf("c"); else printf("%lldc",c); } if(d<0) { if(d==-1) printf("-d"); else printf("%lldd",d); } else if(d>0) { if(a||b||c) printf("+"); if(d==1) printf("d"); else printf("%lldd",d); } if(e<0)//最后一个是数。而不带字母。所以是正负1都得输出! printf("%d",e); else if(e>0) { if(a||b||c||d)//可是正1的时候你的正号得推断,假设前面没有数的话。正号就不用输出了!

printf("+"); printf("%lld",e); } if(!a&&!b&&!c&&!d&&!e)//假设前面的数的系数都是0的话就输出最后的结果为0!

printf("0"); printf("\n");//最后记住换行 } return 0; }

注意:这道题我做的思想没有错。就是用long long会出现输入1 0 0 0 0而输出a+0b+0c+0d的现象,你把long long换成__int64再试试,就对了!

代码:

//总结:这样的题首先要分两种情况:带不带字母 。还得注意,第一个数 是正数的时候,不用输出+。
//当是字母的时候看看有没有系数为1(或者-1)的项。假设有系数为1(或者-1)的项,那个系数就不用输出了
//然后得看系数是正还是负,假设是负的话。就不用管了。就直接将那一项输出即可了,假设是正的话,还得
//考虑是否输出正号。假设前面的系数都是0,那正号就不用输出了。假设有数,就得输出正号。
//还得考虑当全部的系数都是0,那就仅仅能输出0了;
//注意:1.字母的系数1(-1仅仅输出负号)不输出。数的话1要输出。
//      2.正号是否输出!(前面的系数都是0或者是第一项的话就不用输出)
//      3.当全部的项都是0的话。不能没有输出!要输出0!

// 4.注意数的大小(在hpuoj仅仅能用long long)。32位不能满足就仅仅能用long long型来定义了。 #include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> using namespace std; int main() { __int64 a,b,c,d,e; while(scanf("%I64d%I64d%I64d%I64d%I64d",&a,&b,&c,&d,&e)!=EOF)//要用long long型进行定义。 { if(a!=0)//必须推断是否为0,假设是0。则不用输出。否则必须输出 printf("%I64d",a); if(b<0)//对后面的数要正负分情况讨论,假设为负数不用输出正号,直接将数输出来即可了 {//可是,又一个问题来了。要是是-1的话,连1都不用输出了,直接输出-b即可了! if(b==-1) printf("-b"); else//否则得输出那个负数 printf("%I64db",b); } else if(b>0) { if(a!=0)//假设是正数,而且前面有数的话,才干加正号 { printf("+"); } if(b==1)//得推断系数是否是1,是1的话就不用输出1了!

printf("b"); else//要是不是1的话。就得将正数输出 printf("%I64db",b); } if(c<0)//c,d和b事实上是一样的,在前面的系数是负数的时候。得分情况输出,看看是-1不是。是-1的话1就不用输出了 {//否则全部的数都得输出。 if(c==-1) printf("-c"); else printf("%I64dc",c); } else if(c>0)//当为正数的时候,你不但要考虑前面的是否为1,1不输出。并且得考虑正好是否输出。仅仅有前面有数的时候正号才输出! { if(a||b) printf("+"); if(c==1) printf("c"); else printf("%I64dc",c); } if(d<0) { if(d==-1) printf("-d"); else printf("%I64dd",d); } else if(d>0) { if(a||b||c) printf("+"); if(d==1) printf("d"); else printf("%I64dd",d); } if(e<0)//最后一个是数。而不带字母,所以是正负1都得输出。 printf("%d",e); else if(e>0) { if(a||b||c||d)//可是正1的时候你的正号得推断,假设前面没有数的话。正号就不用输出了! printf("+"); printf("%I64d",e); } if(!a&&!b&&!c&&!d&&!e)//假设前面的数的系数都是0的话就输出最后的结果为0! printf("0"); printf("\n");//最后记住换行 } return 0; }

转载于:https://www.cnblogs.com/jzdwajue/p/7398737.html

第三次个人赛题目2 【多项式输出格式】相关推荐

  1. 2022年 新华三杯决赛题目

    一.前言 2022年 新华三杯决赛题目,群里面有拓扑,有需要联系我. 二.项目拓扑 三.项目需求 1.根据题目要求配置IP地址,修改设备名 2.L2W的vlan10绑定端口G1/0/1,vlan20绑 ...

  2. 操作系统 精髓与设计原理 第三章部分题目

    第三章重要题目 注:书参考<操作系统--精髓与设计原理(第九版)> 复习题 3.2 哪些常见事件会触发进程的创建? (1)批处理环境中,提交一个新作业时操作系统会为该作业创建一个新进程. ...

  3. 21年美亚杯个人题解,由于要准备美亚22,所以认真地刷了一下题,这里也分享一下个人赛题目,希望与大家一起进步。

    案件背景: 2021年10月某日早上,本市一个名为"大路建设"的高速公路工地主管发现办公室的计算机被加密并无法开启,其后收到了勒索通知.考虑到高速公路的基建安全,主管决定报警.警方 ...

  4. 《应届生求职面试全攻略》学习笔记(三)——面试题目分类讲解

    一.自我介绍 要点: (一)自我介绍中的每段内容都有亮点,而不是平铺直叙. (二)自我介绍过程中能与面试官互动,而不是自说自话. (三)自我介绍的内容与所申请的职位有关系,而不是流水账. 模版: 大众 ...

  5. 机器学习三 归一化_正则化_多项式升维

    一. 归一化 1.归一化的目的 把数据变为(0,1)之间的数 ,使得在梯度下降的过程中,不同维度的θ值(或w)参数可以在接近的调整幅度上.保持数据在迭代过程中的θ值幅度基本一致. 2.常用的归一化类别 ...

  6. C语言的三个经典题目:三步翻转法、杨氏矩阵、辗转相除法

    文章目录 三步翻转法 杨氏矩阵 辗转相除法 三步翻转法 三步翻转法是C语言中用来求旋转字符串的一种进阶方法,我们以具体例题对其进行介绍. 例:求一个字符串左旋n个字符后得到的新字符串 普通方法实现 我 ...

  7. c++ 三次多项式拟合_最小二乘法多项式曲线拟合数学原理及其C++实现

    本文使用 Zhihu On VSCode 创作并发布 0 前言 自动驾驶开发中经常涉及到多项式曲线拟合,本文详细描述了使用最小二乘法进行多项式曲线拟合的数学原理,通过样本集构造范德蒙德矩阵,将一元 N ...

  8. 线性代数(三十六) : 最小多项式

    矩阵的极小多项式与其迹数与范数相关. 0 极小多项式的概念 在定义极小多项式之前了解这个概念. 根据凯莱-哈密顿定理我们知道A的特征多项式满足: 记全体满足p(A)=0 的多项式p为Pa,显然Pa中的 ...

  9. 字节跳动2018校招前端方向(第三批)题目3

    题意:现在有一排房间每个房间里有若干的人,现在会将某个房间i里的人重新分配,分配的方法是首先让i房间里的人都出来,之后按照i+1,i+2....的顺序每个房间分一个人,n号房间的下一个房间为1号房间, ...

最新文章

  1. 一次失败的尝试:paxosstore示例编译
  2. android adb命令
  3. C# 访问并打开局域网文件夹
  4. python哪一版好用-学习 Python 用哪本书好?
  5. C++ STL swap_range
  6. Linux学习笔记之一————什么是Linux及其应用领域
  7. metrics_FlexyPool如何支持Dropwizard Metrics包重命名
  8. 动态规划 NOIP经典问题 开心的金明(洛谷P1060题题解,Java语言描述)
  9. 推荐WCF的一系列录像
  10. es6 for...of 循环
  11. k-means 聚类算法
  12. MFC 配置OpenCV在Picture控件上绘图
  13. 第100篇博文纪念 | C# 根据数据库表结构生成DOC数据库文档
  14. bzoj 3123 [Sdoi2013]森林
  15. PDF预览之PDFObject.js总结
  16. JAVA智能分析的简单聚众筹平台计算机毕业设计Mybatis+系统+数据库+调试部署
  17. 2022年电工(初级)考试报名及电工(初级)最新解析
  18. 基于android的学生考勤请假app
  19. mysql 8.0 新特性 统计直方图 优化执行计划SQL查询
  20. 商业研究(9):入口思维(刚需、频次、免费、变现)

热门文章

  1. 论文阅读(4)--Part-Stacked CNN for Fine-Grained Visual Categorization
  2. 三个不等_2道真题,讲透「基本不等式」的使用原则 | 真题精讲-11
  3. android刷新时的圆形动画_Android动画篇(一):圆形进度条CircleProgressBar
  4. 包含以下字段的 struct 怎么解决_S7-300/400进阶笔记4-2:STEP7的“结构”STRUCT数据类型的用法...
  5. Shiro身份认证授权原理
  6. Java源代码分析与生成
  7. .net Redis缓存优化提高加载速度和服务器性能(二)
  8. android 跳转页面出错,Android 页面跳转(无/含有返回结果)
  9. linux组类型,LINUX用户以及用户组
  10. oracle导入中文数据出现乱码