https://yukicoder.me/problems/no/668
解法
https://yukicoder.me/submissions/246532
やるだけなのだが、繰り上がりが発生するので面倒。
aはS[0]なので、a=S[0] - '0'
bはS[1]なので、b=S[1] - '0'
cは繰り上がりが発生しないとすると c=S.length()-1
問題は繰り上がりなのだが、S[2]が'5'以上なら繰り上がりが発生となる。
繰り上がりが発生するとbが1つ増える。
bが10となってしまったら、aを1増やしてb=0とする。
それでaが10となってしまったら、a=1,b=0として桁が増えるのでc+=1とする。
これで後は答える。
string S; //--------------------------------------------------------------------------------------------------- void _main() { cin >> S; int a = S[0] - '0'; int b = S[1] - '0'; int c = S.length() - 1; if ('5' <= S[2]) { b++; if (10 <= b) { a++; b = 0; if (10 <= a) { a = 1; c++; } } } printf("%d.%d*10^%d\n", a, b, c); }