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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0