c++如何将一个计算得到的一个很大的整数存入变量中,比如是一个60位的整数,不用科学计数法。
Description
用高精度计算出S=1!+2!+3!+…+n!(n≤50) 其中“!”表示阶乘,例如:5!=5*4*3*2*1。
Input
只有一行,一个正整数n。
Output
只有一行,一个正整数S。
Sample Input
48
Sample Output
12678163798554051767172643373255731925167694226950680420940313
c++如何存入很大的数
答案:3 悬赏:30 手机版
解决时间 2021-01-04 04:32
- 提问者网友:捧腹剧
- 2021-01-03 23:09
最佳答案
- 五星知识达人网友:拜訪者
- 2021-01-04 00:48
自定义字节型对象。将60位数的16进制以字节方式存储。你要自己实现所有的运算符操作。也就是你自己定义一种BigLang类型,然后什么加减乘除,全部靠对这个对象重载操作符或者实现方法来完成。你得有个预估,比如你这个60位长的10进制数,一般运算要多少个字节来存放他的2进制。统一成一种类型。超过二进制32位的话。它的加减乘除等等一些运算你都得拆分分部自己写算法完成。
全部回答
- 1楼网友:末日狂欢
- 2021-01-04 02:47
一般的作法是自己做一个高精度类型,用字符串或者整形数组来存储,再自己写运算的函数。
如果要多次使用的话可以考虑封闭成一个类,把常用的运算符都重载一下。
- 2楼网友:人间朝暮
- 2021-01-04 01:21
不可能实现的,c和c++中最大表示的就是long double数据类型了
要实现很大的数字
要么定义一个结构体(或者类)来以数组的形式从高位到低位保存
要么定义一个结构体(或者类)来以数组的形式保存科学计数法的数值部分和次方部分
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯