5
高效的科学计数法
前几天,我的化学老师向我们解释了科学记数法(使用小数并乘以十的幂可以更轻松地表达大数),这使我回到了几年前。在学习了基础知识之后,我们做了很多典型的数学问题,其中一些问题如下: 用科学计数法表示以下内容: a)50000000 b)120000000000000 c)90000000000000000000000000000000000000 d)pi ^ e ^ i ^ j ^ k ^ std :: vector ... z)200 ... 我想:“什么?我们被告知,科学记数法被用来提高书写效率,但是某些情况下根本没有效率!” 考虑数字 300 及其科学表示法: 3x10^2 什么,科学标记的版本实际上会占用更多空间?现在我们不能拥有它了吗?(屏幕空间是宝贵的。) 我们可以确定自己是否可以用科学计数法写数字更节省空间,或者... 任务 您的程序或函数应输入n任意大小的正数(取决于语言所支持的大小),并输出科学编号的数字。 但是,如果n在删除尾随零和尾随小数位后,原始数字显示的字符数少于或等于其科学标记版本的字符数,则必须输出该原始数字n。 您的代码必须尽可能短,因为输出也必须尽可能短。 技术指标 高效科学计数法定义如下: bx10^e b是输入数除以10的幂以得出的值1 <= b < 10。该数字必须删除所有结尾的零(如果需要,还包括小数点),但必须具有原始数字的精度(当然,要达到您语言中的小数点限制)。也就是说,90000变成9,13.500变成1.35,0.000675变成6.75等。如果该数字最终包含的小数位数超出了您的语言所能处理的范围,则应四舍五入到最大小数位数。 e是将十提高到的指数n = b x 10^e(请记住,如果n小于1 ,则此数字必须为负)。此数字不应有任何尾随零或小数点(主要是因为如果它不是整数,那是错误的...)。 字符x10^ 必须保留在b和之间的字符串中e。 测试用例 Input …