,putetheexactvalueofRnwhereRisarealnumber(0,0<R<)andnisanintegersuchthat0<n<=,'■涉及到大数据的要求精确计算的问题是很一常见的。比如要求计算国家借款对于许多电脑系统是一个非常繁重的任务。本题中要求计算一个在零到一百以内的实数的n次方(0<n<=25)在计算机上进行高精度计算,首先要处理好以下几个基本间题■1、数据的接收与存储2、计算结果位数的确定;3、进位处理和借位处理4、商和余数的求法;输入和存储■运算因子超出了整型、实型能表示的范围,肯定不能直接用数的形式来表示。能表示多个数的数据类型有两种:数组和字符(1)数组:每个数组元素存储1位(在优化时,这里是一个重有多少位就需要数组元素;优点:每一位都是可以直接加减;运算时非常方便缺点:数组不能直接输入;输入时每两位数之间必须有分隔符,不符合数值的输入****惯符串:字符串的最大长度是255,可以表示255位优点:能直接输入输出,输入时,每两位数之间不必分隔符,符合数值的输入****惯中的每一位是一个字符,不能直接进行运算,必须先将它转化为数值再进行运算;运算时非常不方便(注意“0的优化一个数组元素存放四位数注意:是加减法时可以用interger,但是当是乘法的时候,就要用int64,否则会出现越界的情况。还有就是:输出时对非最高位的补零处理。另一个间题存储顺序正序逆序??还有就是一定不要忘了初始化!!计算结果位数的确定两数之和的位数最大为较大的数的位数加1乘积的位数最大为两个因子的位数之和。阶乘:lgn!=lgn+g(n-1)+g(n-2)………+193+g2+g1m/n10+n(n1)n10+n(n2)n10+………+in3/n10+nz/n10+n1/n10trunc(1/n10*(n+n(n-1)+n(n2)++n3Hn2+n1)乘方:g(a^b)=trunc(g(a^b)+1=trunc(bIga)+1=trunc(bIna/In10)高精度的加法carry=0for(i=0;K<=len;i++)k=a的+b印j+carry;a[i+1]+=k/Ncarry=k/N当最后carry>0时,en会变化!!高精度的减法先比较大小,大的为,用一个变量记录符号。一carry=0for(i=0;K<=len;i++)if(a[il-b[]-ncarry>=0)ali=alil-blil-ncarry,carry=0;elseali=a[]N-b[]-ncarry,carry=1;
北京大学poj1001解题报告 来自淘豆网www.taodocs.com转载请标明出处.