記事のディレクトリ
1.トピック
ハリーポッターのファンなら、魔法の世界には独自の通貨システムがあることをご存知でしょう。ハグリッドがハリーに言ったように、「17個のシルバーシックル(シックル)から1ガレオン(ガレオン)まで、29個のナッツが1個のシコに交換されます。簡単です。」さて、ハリーが支払った価格Pと彼が実際に支払ったお金Aを考えると、あなたの仕事は彼が何を見つけるべきかを計算するプログラムを書くことです。小さな変化。
入力フォーマット:
スペースで区切って、Galleon.Sickle.Knutの形式でPとAをそれぞれ1行に入力します。
ここでガレオン船は[0、1 0 7] [0,10 ^ 7 {}]です。[ 0 、1 07]は区間内の整数、Sickleは区間[0、17)の整数、Knutは区間[0、29)の整数です。
出力フォーマット:
ハリーが受け取ったはずの変更を入力と同じ形式で1行に出力します。彼が十分なお金を持ってこない場合、出力は負の数になるはずです。
入力例1:
10.16.27 14.1.28
出力サンプル1:
3.2.1
入力例2:
14.1.28 10.16.27
出力サンプル2:
-3.2.1
2.アイデアと注意事項
アイデア:
すべての通貨をKnutカウント方法に変換し、対応する操作ルールに従って変換します。
ルール:1ガレオン= 17鎌= 17 * 29クヌート
3、ACコード
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int a,b,c;
int d,e,f;
scanf("%d.%d.%d",&a,&b,&c);
scanf("%d.%d.%d",&d,&e,&f);
int sum_1=a*17*29+b*29+c;
int sum_2=d*17*29+e*29+f;
int diff=sum_2-sum_1;
int p1=diff/17/29; //G
int p2=abs(diff/29%17); //S
int p3=abs(diff%29); //K
printf("%d.%d.%d\n",p1,p2,p3);
結果: