あなたはハリーポッターのファンなら、あなたは魔法の世界は、独自の金融システムを持って知っているよ-ハグリッドがハリーに言ったとおり「セブンティーンシルバーシックルズ(鎌)ガレオン(ガレオン)に対して、西に対する二十から九ナース(クヌートは)非常に簡単にすることができます。「今、ハリーが支払う価格与えられたPを、彼が実際にお金を支払った、あなたのタスクは、彼が探しているしなければならない計算するプログラムを書くことです変更。
入力フォーマット:
図1に示すように、入力ラインに与えられているP及びA、フォーマットGalleon.Sickle.Knut
隙間によって分離され、。ここではGalleon
[0、1 0 。7 の整数〕間隔は範囲[0、17)の範囲内の整数であり、範囲[0、29)セクション内の整数です。Sickle
Knut
出力フォーマット:
同じ入出力フォーマットに沿って、ハリーは、変更を探しているべきです。彼は十分なお金を持っていなかった場合、出力は負でなければなりません。
サンプル入力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 < ストリング > の#include <STDLIB.H> 使用して 名前空間STD; int型のmain() { 文字列マネー; CIN >> マネー; GETCHAR(); // 文字列にスペースを読み取ることができません、ここGETCHARスペースで吸収 文字列; money2 CIN >> money2; 文字列STR1、STR2、STR3、str_1が、がstr_2、str_3; のため(int型 I = 0 ; I)は、(money.lengthを<;私は++ ) { IF(マネー[ I] == ' ' ) { 一方(お金[I + 1!] = ' ' ) { I ++ 。 STR2 + = お金[i]は、} 私は ++します; 一方、(お金[I + 1!] = ' ' &&お金[I + 1 ] <= ' 9 ' &&お金[I + 1 ]> = ' 0 ' ) { I ++ 。 STR3 + =お金[i]は、 } } 他 { 0009 + = お金[I]。 } } のための(int型 I = 0 ; iが(money2.lengthを<); iが++ ) { 場合(money2 [I] == ' ' ) { ながら(money2 [I + 1!] = ' ' ) { I ++ ; がstr_2 + = money2 [I]。 } 私は ++ ; 一方(money2 [Iは、+ 1。 ] =!' ' && money2 [Iは+ 1 ] <= ' 9 ' && money2 [Iは+ 1 ]> = ' 0 ' ) { 私は ++ ; str_3 + = money2 [I]; } } そう { str_1が + = money2 [I]; } } // 通貨ナット算出へのchar *エンド、END1 *、* END2、END3 *、* END4、* END5、 ロング strtolは= A(str1.c_str()、&エンド、10)* 17 * 29 、 B = strtolは(str2.c_str()、&END1、10)* 29 、 C = strtolは(str3.c_str()、&END2、10 ) 、 A1 = strtolは(str_1.c_str()、&END3、10)* 17 * 29 、 B1 = strtolは(str_2.c_str()、&END4、10)* 29 、 C1 = strtolは(str_3.c_str()、&END5、10 ); // 変換文字列データ長い 長い SUM = A1 + B1 + C1-AB- C; 長い A、B、C。=和/(29 * 17 )。 B =(SUM-A * 17 * 29)/ 29 。 C =和-A * 29 * 17 -B * 29 。 もし(和> = 0 ) { COUT << << ' 。' << B << ' 。' << C << ENDL。 } 他 { COUT << << ' 。' << 0 -B << ' 。" -C << ENDL。 } 戻り 0 。 }