PAT B 1037(C ++) - ロングブラシ弟のタイトルパス

ホグワーツ魔法魔術学校での変化(20ポイント)を探して1037
あなたはハリーポッターのファンであれば、あなたは魔法の世界は、独自の金融システムを持って知っているよ-ハグリッドがハリーに言ったとおり、「十七銀西西に対するガレオン(ガレオン)に対する(鎌)、二十から九ナース(クヌートは)非常に簡単にすることができますすることができます。「今、ハリーPが支払う価格与えられたと、彼は実際にお金を支払った、あなたタスクは、彼が変更を探してしなければならない計算するプログラムを書くことです。

入力フォーマット:
入力P及びAは、隙間によって分離された行フォーマットGalleon.Sickle.Knut、で与えられます。ここでガレオン[0 10
。7
]整数、鎌間隔の整数であり、[0、17)セクション、クヌートは[0、29)セクション内の整数です。

出力形式:
出力ハリーは、同じ形式の行の入力を変更する必要があります。彼は十分なお金を持っていなかった場合、出力は負でなければなりません。

サンプル入力1:
10.16.27 14.1.28

出力サンプル1:
3.2.1

サンプル入力2:
14.1.28 10.16.27

出力サンプル2:
-3.2.1

#include<iostream>
#include<cstdio>
#include<iostream>
using namespace  std;
int main(){
	int pGalleon = 0, aGalleon = 0, pSickle=0,aSickle=0,pKnut=0,aKnut=0;
	scanf("%d.%d.%d %d.%d.%d",&pGalleon,&pSickle,&pKnut,&aGalleon,&aSickle,&aKnut);
	int pKnutSum=0,aKnutSum=0,dKnut=0,dGalleon=0,dSickle=0;
	pKnutSum = pGalleon*17*29+pSickle*29+pKnut;
	aKnutSum = aGalleon * 17 * 29 + aSickle * 29 + aKnut;
	dKnut = aKnutSum - pKnutSum;
	bool flag = false;
	if (dKnut < 0){
		flag = true;
	}
	dKnut = abs(dKnut);
	int galleonNum = 0;
	int knutNum = dKnut % 29;
	int sickleNum = dKnut / 29;
	if (sickleNum !=0){
		galleonNum = sickleNum / 17;
		if (galleonNum != 0){
			sickleNum = sickleNum % 17;
		}
	}
	if (flag){
		cout << "-" << galleonNum << "." << sickleNum << "." << knutNum << endl;
	}
	else{
		cout<< galleonNum << "." << sickleNum << "." << knutNum << endl;
	}
	return 0;
}
公開された46元の記事 ウォンの賞賛0 ビュー585

おすすめ

転載: blog.csdn.net/qq_23079139/article/details/104101372