C++超出数据存储

来源:百度知道 编辑:UC知道 时间:2024/05/24 01:20:41
是在做NOIP2007复赛题时出的问题。。。

算出数据很大。。。用 unsigned long int 都储存不了
比如:3138550867693340381917894711603833208051177722232017256446
怎么处理这个问题?
题目是双层汉诺塔。。。
给出的n最大是200。。。
n=190时就是这个数。。。

哪题会有这个数据量?
1、统计数字
2、字符串的展开
3、矩阵取数游戏
4、树网的核

难道是矩阵取数?
也没这么大的吧。。。哦,好像有,我好像用的是高精度算法,看来long long也够不到。。。。
高精度就是用整型数组模拟一个大数,进行计算,网上这种文章比较多,我三言两语也说不好,自己看看吧。

PS:不对,“100%的数据满足:l<=n,m<=80,0<aij<=1000”
unsigned long long最大是2^64=18446744073709551616 能够到

用法:
unsigned long long a;
a=1654854635215LL;//注意明文数字后面一定要“LL”
printf("%lld",a);//输出表示是%lld

流输入输出不会,反正直接插入流肯定不对。。。。

要高精……
不要指望C/C++能帮你存这些东西,标准C++顶多long long到64位,根本不够这类题目的存储要求。

NOIP很多题目是要考高精度运算的。

要求你自己实现这些超大数的存储表示,四则运算,以及输出。