目录
1010 一元多项式求导
1011 A+B 和 C
1010 一元多项式求导
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0
。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
算法思路:
我们定义两个变量分别存储项的系数和指数,每读取一个项,就直接输出计算结果。
易错点:
- 求导之后系数是零的项不输出。
- 输出的最后一个数字之后不能有空格。
- 如果多项式只有常数项,输出0 0。
#include<bits/stdc++.h>
using namespace std;
using gg = long long;
int main()
{
ios::sync_with_stdio;
cin.tie(0);
gg ci, ei;
bool space = false;
while (cin >> ci >> ei)
{
ci *= ei;
--ei;
if (ci != 0)
{
cout << (space ? " " : "") << ci << " " << ei;
space = true;
}
}
if (not space)
{
cout << "0 0";
}
return 0;
}
1011 A+B 和 C
给定区间 [−231,231] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。
输入格式:
输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。
输出格式:
对每组测试用例,在一行中输出 Case #X: true
如果 A+B>C,否则输出 Case #X: false
,其中 X
是测试用例的编号(从 1 开始)。
输入样例:
4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647
输出样例:
Case #1: false
Case #2: true
Case #3: true
Case #4: false
算法思路:定义3个long long类型的变量,判断输出即可。
#include<bits/stdc++.h>
using namespace std;
using gg=long long;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
gg a,b,c,i,T;
cin>>T;
for(i=1;i<=T;i++)
{
cin>>a>>b>>c;
cout<<"Case #"<<i<<": "<<(a+b>c?"true":"false")<<'\n';
}
return 0;
}