[PAT B 1010、1011] 単項多項式の導出、A+B および C

 

目次

1010 単項多項式の導出

1011 A+B および C

1010 単項多項式の導出

1 つの変数で多項式の導関数を求める関数を設計します。(注: xn (n は整数) の 1 次導関数は nxn−1 です。)

入力形式:

多項式の非ゼロ項の係数と指数 (どちらも絶対値が 1000 までの整数) を指数関数的に降順で入力します。数字はスペースで区切られます。

出力フォーマット:

微分多項式の非ゼロ項の係数と指数を入力と同じ形式で出力します。数字はスペースで区切られますが、末尾に余分なスペースを含めることはできません。「ヌル多項式」の指数と係数は両方とも 0 ですが、 として表されることに注意してください 0 0

入力サンプル:

3 4 -5 2 6 1 -2 0

出力例:

12 3 -10 1 6 0
アルゴリズムのアイデア:

項目の係数と指数をそれぞれ格納する変数を 2 つ定義し、項目を読み込むたびに計算結果を直接出力します。

エラーが発生しやすいポイント:
  • 導出後の係数がゼロとなる項は出力されません。
  • 出力される最後の数値の後にスペースを入れてはなりません。
  • 多項式に定数項のみがある場合は、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 グループが与えられ、各グループが 1 行を占め、A、B、C が順番に与えられます。整数はスペースで区切られます。

出力フォーマット:

テスト ケースのセットごとに、  Case #X: true A+B>C の場合は 1 行で出力され、それ以外の場合は が出力されます 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

 アルゴリズムの考え方:longlong型の変数を3つ定義し、出力を判定する。

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

 

おすすめ

転載: blog.csdn.net/weixin_73534885/article/details/131578719