【PAT B 1010,1011】一元多项式求导 ,A+B和C

 

目录

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;
}

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>