[PAT]クラス1061でデート(20ポイント)(シミュレーションは細部に注意を払う必要があります)

質問の意味:

Nの有効桁を保持する二つの数字かどうか決定される二つの入力浮動小数点に続く正の整数N(<= 100)を入力し、(先行ゼロを含んでいてもよい、PATは、この未知の文字列に入力するために使用されています)等しく、科学的表記法で出力されます。

騙す:

小数点以下3桁の有効数字を含む試験点データは、小数点の位置は、インデックスマイナス1プラス桁位置であるべきです。

テストポイント

コード:

#define HAVE_STRUCT_TIMESPEC
する#include <ビット/ STDC ++ H>
使用して名前空間std。
文字列、B;
int型ans_a [107]、ans_b [107]。
int型のmain(){
IOS :: sync_with_stdio(偽);
cin.tie(NULL)。
cout.tie(NULL)。
int型のn;
cinを>> N;
CIN >> A >> B;
int型CNT = 0;
INT POSA = a.size()。
INT POSB = b.size()。
INT STAA = a.size()。
INTスタブ= b.size()。
以下のために(; iはa.size()<; I = 0 int型++ I)IF([I] == ''){
POSA = I。
ブレーク;
}
(i = 0、int型、iが(b.sizeを<); ++ i)に対するIF( '' B [I] ==){
POSB = Iであり;
ブレーク;
}
ため(INT i = 0; iはa.sizeを()<; ++ I)IF([I] = '0' && [I] =! ''){
STAA = I。
ブレーク;
}
場合(! '' B [I] = '0' && B [I] =){(; iが(b.sizeを<)++ iはi = 0 INT)用
スタブ= I。
ブレーク;
}
// COUT << POSA << " "<< STAA <<" "<< POSB <<" "<<刺し<<"の\ n"。
{(; iがa.sizeを(<)++ iはi = STAAをINT)のための
([I] == '')もし
続けます。
(N CNT <)場合
ans_a [++ CNTは] = [I] - '0'。
}
ため(INT I = CNT + 1; I <= N; ++ I)
ans_a [I] = 0;
int型TOT = 0;
ため(=スタブをI int型、iはb.sizeを()<; ++ I){
IF(B [I] == '')
続けます。
IF(TOT <N)
ans_b [++ TOT = bの[I] - '0'。
}
(iはTOT + 1 = int型私は++; iが<= N)のため
ans_b [I] = 0;
INTフラグ= 0。
I = 1をint型(ため。
I <= N; ++ I)IF(ans_a [I] = ans_b [I])! フラグ= 1。
(!フラグ&& POSA-STAA == POSB-刺し|| STAA == a.size()&&刺し== b.size())の場合
裁判所未満<<「YES」。
他の
裁判所未満<<「NO」。
裁判所未満<< "0。";
(; iが<= N I ++ I = 1 INT)ため
COUT << ans_a [I]。
int型ANS = 0;
IF(POSA-STAA <0)
ANS = POSA-STAA + 1。
他の
ANS = POSA-STAA。
IF(STAA == a.size())
ANS = 0。
裁判所未満<< "* 10 ^" << ANS;
(!(フラグ|| POSA-STAA = POSB-スタブ)&&(STAA = a.size()||スタブ= b.size())!)であれば{
COUT << "0"。
(I 1 = int型、iが<= N; I ++)ため
COUT << ans_b [I]。
int型ANSS = 0;
(POSA-STAA <0)であれば
ANSS = POSB-スタブ+ 1。

ANSS = POSB-刺します。
IF(スタブ== b.size())
ANSS = 0。
裁判所未満<< "* 10 ^" << ANSS;
}
0を返します。
}

おすすめ

転載: www.cnblogs.com/ldudxy/p/11682024.html