ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1010 一元多项式求导 (25 point(s))

2021-09-05 22:32:11  阅读:132  来源: 互联网

标签:25 e1 cout point int 多项式 样例 k1 1010


// 19 points
#include <bits/stdc++.h> 
using namespace std;

int main(){
	int k1, e1, first = 0;
	while(scanf("%d %d", &k1, &e1) != EOF){
		int k2 = k1 * e1, e2 = e1 - 1;
		
		if(e2 >= 0) 
			cout << (first ? " " : "") << k2 << " " << e2;
        else if(k2 == 0 && e2 == 0) cout << (first ? " " : "") << 0 << " " << 0;
		first++;
	}
}
// 25 points
#include <bits/stdc++.h>
using namespace std;

int main() {
	int c, e, first = 0;
	cin >> c >> e;
	if(!c || !e) cout << 0 << " " << 0;
	else cout << c * e << " " << e - 1;
	while(cin >> c >> e) {
		if(e != 0) cout << " " << c * e << " " << e - 1;
	}
}

当时想的果然是 0 相关的问题,但不知道代码应该怎么表达。果然还是考虑的角度不够具体。

当时尝试测试了 1 0 和 0 1 ,发现代码没有任何输出的时候就觉得这部分有问题了。然后尝试改指数和系数中判断是否为 0 的部分,但是改成 || 对了本来错的测试点,却又让样例过不了了,改成 && 过了样例,又卡了两个测试点得了 19 分。想不通遂放弃。


参考了别人的思路,又看了看样例和上面的 1 0 0 1 特别是样例 -2 0 部分,感觉有点明白差别在哪里了。可以看到当存在多个多项式的时候,指数为 0 的情况是不输出的。

而如果只有一个多项式,并且得到的结果可能为 0 的时候,比如上面的 c 0 ,或者hi 0 e 的时候,那么你结果就需要表示出来而不能不输出了。

结合别人说的,当指数为 0 的时候,跟前面的系数撑起来就变成 0 了,但是如果前面还有其他多项式时候的情况,这个 0 是否表达并不重要,就像我们平时写 x^2 + 2x + 1 不会还会在后面多写一个 0 。但是如果对 C 常数求导的话,不能说什么也不写,因为其结果就是 0 你还得把他表达出来。

所以我们可以看到这两个关键在于,一个多项式以及多个多项式时 0 的不同的表达的情况。

标签:25,e1,cout,point,int,多项式,样例,k1,1010
来源: https://www.cnblogs.com/Atl212/p/15231495.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有