PAT1 1073 Scientific Notation

题目链接
我的github

题目大意

给出一个科学计数法表示的数,现在要求将它转换为正常的数字表示法,并保留所有的有效数字

输入

每组包含一个测试用例,在一行中给出科学计数法表示的数。这个数的长度大小不超过9999字节,且指数的绝对值不超过9999

输出

对每个测试用例输出对应的正常数字表示法所表示的数字,并保留所有有效数字

样例输入

+1.23400E-03

-1.2E+10

样例输出

0.00123400

-12000000000

解析

先找到E的下标,然后根据E两边的数字分别进行转换即可

# -*- coding: utf-8 -*- 
# @Time : 2019/7/1 9:24 
# @Author : ValarMorghulis 
# @File : 1073.py
def solve():
    s = input()
    posE = s.find('E')
    if s[0] == '-':
        print('-', end='')
    cnt = int(s[posE + 2:])
    if s[posE + 1] == '-':
        print('0.', end='')
        print('0' * (cnt - 1), end='')
        for i in range(posE):
            if '0' <= s[i] <= '9':
                print(s[i], end='')
        print('')
    else:
        cnt += 1
        for i in range(posE):
            if cnt == 0:
                print('.', end='')
            if '0' <= s[i] <= '9':
                print(s[i], end='')
                cnt -= 1
        print('0' * cnt)


if __name__ == "__main__":
    solve()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值