首页 > 试题广场 >

特殊的科学计数法

[编程题]特殊的科学计数法
  • 热度指数:569 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
已知,引力常数,普朗克常数 ,阿伏伽德罗常数为.....这些数据,看起来如此的繁琐,实际上,我们为了简化,有时候我们需要写他们的科学计数法的方式,比如,上述三个数,我们会写成6.7 * 10 ^ -11,6.6 * 10^-34, 6.0 * 10 ^ 23。
现在给你一个正整数,请你转换成a.b * 10 ^ c的形式。确保数值(a.b)四舍五入到小数点后一位。此外还应满足

输入描述:
输入的第一行给出正整数
{100 \leq N \leq 10^{100000}}


输出描述:
转换为a.b * 10 ^ c的形式。
示例1

输入

299792458

输出

3.0*10^8
示例2

输入

602214129000000000000000

输出

6.0*10^23
import sys

n = sys.stdin.readline().strip()
a = int(n[0])
b = int(n[1]) + (len(n) > 2 and int(n[2]) > 4)
c = len(n) - 1
while a > 9 or b > 9:
    if b > 9:
        a += 1
        b = 0
    else:
        a = 1
        b = 1 if b > 4 else 0
        c += 1
print(str(a) + "." + str(b) + "*10^" + str(c))

发表于 2026-03-26 15:18:11 回复(0)