首页 > 试题广场 >

特殊的科学计数法

[编程题]特殊的科学计数法
  • 热度指数:4959 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定一个正整数 N(位数可达 10^5),请将其转写为科学计数法形式,形如:

a.b\times10^c

\hspace{15pt}具体而言,有如下要求:
\hspace{23pt}\bullet\, a[1,9] 之间的整数;
\hspace{23pt}\bullet\, b 为对 N 的第二位数字进行四舍五入后的小数部分(保留一位小数);
\hspace{23pt}\bullet\, c 为整数指数;
\hspace{23pt}\bullet\, 输出格式严格为 ``\text{a.b*10^c}``,无多余空格。

输入描述:
\hspace{15pt}一行输入正整数 N\left(10 ^2\leqq N\leqq10^{100000}\right),不含前导零。


输出描述:
\hspace{15pt}输出 N 的科学计数法表示 ``\text{a.b*10^c}``
示例1

输入

299792458

输出

3.0*10^8
示例2

输入

602214129000000000000000

输出

6.0*10^23
import sys

N = input()
c=len(N)-1
if int(N[2])>=5:
    b= int(N[1])+1
else:
    b = int(N[1])
if b == 10:
    b=0
    a = int(N[0])+1
else:
    a=int(N[0])
if a == 10:
    a = 1
    b = 0
    c+=1
print(f'{a}.{b}*10^{c}')





发表于 2025-11-05 18:48:01 回复(0)
N = input()
len_N = len(N)
lis = list(map(int,N[0:3]))
if lis[2]<5:
    b = lis[1]
    a = lis[0]
    c = len_N-1
else:
    b = (lis[1]+1)%10
    a = lis[0]+(lis[1]+1)//10
    if a==10:
        a = 1
        b = 0
        c = len_N
    else:
        c = len_N-1
print(f'{a}.{b}*10^{c}')
发表于 2025-08-24 21:40:28 回复(0)