Dạng mũ đơn giản

Đề bài

Mô tả

Cho một số thập phân dương x được biểu diễn dưới dạng xâu ký tự. Số x có thể có:

  • Các chữ số 0 dẫn đầu (ví dụ 0016.).
  • Các chữ số 0 phía sau ở phần thập phân (ví dụ 1.23400).
  • Dấu chấm thập phân . có thể xuất hiện hoặc không. Nếu có thì có thể không có chữ số trước hoặc sau dấu chấm (ví dụ .100, 100.).

Hãy chuyển x về dạng mũ đơn giản (simple exponential notation):

Viết x=a·10b với 1a<10. Khi đó dạng tổng quát là aEb. Trong đó:

  • Nếu b=0 thì phần Eb bị bỏ qua.
  • Nếu a là số nguyên (tức phần thập phân của a chỉ gồm các chữ số 0) thì bỏ luôn dấu chấm và phần thập phân — chỉ in chữ số nguyên.
  • Trong ab không được có chữ số 0 thừa (không có 0 dẫn đầu trong a, không có 0 ở cuối phần thập phân của a, không có 0 dẫn đầu trong b). Riêng b có thể là số âm — khi đó in dấu trừ phía trước, ví dụ 1E-1.

Dữ liệu vào

Một dòng duy nhất chứa xâu ký tự biểu diễn số thập phân dương x. Vì x có thể rất lớn nên không được dùng các kiểu dữ liệu dấu chấm động chuẩn như float, double.

Dữ liệu ra

Một dòng duy nhất — số x ở dạng mũ đơn giản.

Ràng buộc

  • Độ dài xâu biểu diễn x không vượt quá 106.
  • x>0.

Ví dụ

Input Output Giải thích
16 1.6E1 16=1,6·101.
01.23400 1.234 Bỏ 0 dẫn đầu và 0 cuối, b=0 nên bỏ phần Eb.
.100 1E-1 0,1=1·101. a=1 là số nguyên nên bỏ dấu chấm.
100. 1E2 100=1·102, a=1 nên không in .0.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0