- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NOIP奥复习四
问题分析及算法设计
一、高精度计算问题
二、排列组合问题
三、分治算法问题
四、回溯算法问题
五、动态规划问题;高精度计算
一、高精度计算问题
高精度计算中需要处理好以下几个问题:
( 1 ) 数据的接收方法和存贮方法
数据的接收和存贮:当输入的数很长时,可采用字符串方式输入,这样可输入数字很长的数,利用字符串函数和操作运算,将每一位数取出,存入数组中。另一种方法是直接用循环加数组方法输入数据。
( 2 ) 计算结果位数的确定
位数的确定:利用对数函数; L=trunc(log(x)/log(10))+1,定义数组 A〔 L〕;
( 3 ) 进位、借位处理
进位、借位处理:
加法进位:
A[I:= A[I]+B[I],若A[I]>10则
A[I]:=A[I]-10,A[I+1]:=A[I+1]+1
减法借位:
若A[I]<B[I]则A[I+1]:=A[I+1]-1
A[I]:=A[I]+10,A[I]:=A[I]-B[I]
;乘???进位:
Y:=A[I]×B[I]+C,C:=Y DIV 10
A[I]:=Y-C×10
(4) 商和余数的求法
商和余数处理:视被除数和除数的位数情况进行处理。
例题1、高精度乘法运算。
分析:
(1) 数据的接收用字符串方式 ;
(2) 位数的确定:设被乘数为A,乘数为B,它们的位数分别是L1,L2,所以积的位数最长是:L1+L2;;(3) 进位处理:
乘法进位 Y=A[I]*B[I]+C, C=Y DIV 10, A[I]= Y MOD 10; 加法进位
Program p12_11 ;
const n=200;
var a, b : array[1..n] of integer ;
c : array [1..2*n+1] of integer ;
str1 , str2 : string;
L1, L2, i, j, x, y, w :integer;
begin
write ( input string str1,str2 : );
readln (str1); readln (str2); ;L1:=Length(str1); L2:=Length(str2);{ 求两个字符串的长度 }
For i:=L1 downto 1 do
a[L1-i+1 ]:=ord (str1[i])-ord(0 );
for i:=L2 downto 1 do
b[L2-i+1]:=ord (str2[i])-ord(0);
for i:=1 to L1 do
for j:= 1 to L2 do
begin
x:=a[i]*b[j] ; y:=x div 10; z:=x mod 10 ;
w:=i+j-1 ; c[w]:=c[w]+z ; { 处理本位 }
c[w+1]:=c[w+1]+c[w] div 10 +y ; { 处理进位 }; ec[w]:=c[w] mod 10 ;
end; { 两数相乘,精确取高精度计算的每一位 }
E:=L1+L2;
While C[E]=0 then E:=E-1 ; { 处理最高位有否进位问题 }
write( str1,’* ,str2,= );
for i:=e downto 1 do
write (c[i]);
writeln;
end.
当输入 str1=123456789, str2=987654321 时, 其结果是: 123456789*123456789 =121932631112635269;例题2 、求 N! 的精确值。
分析:
N!=1*2*3*4......* N,如 10!=1*2*3*4......*10,
用 高精度算法求出每一位数,其算法如下:
(1) 确定位数:N!=N*(N-1)*(N-2)…*3*2*1
根据数学知识可知N!的位数是:
L=trunc(1/lg10(lnN+ln(N-1)+......ln3+ln2+ln1))+1;
然后每位数占用一个数组单
您可能关注的文档
最近下载
- (高清版)DB43∕T 140-2023 造林技术规程 .pdf VIP
- 2025广东汕尾市海丰县纪委监委招聘政府聘员6人笔试参考题库附答案解析.docx VIP
- 飞机构造基础 液压源 液压源的组成(二).pptx VIP
- 正元地下管线数据处理系统用户手册(Zyspps Ver5.0).pdf
- 概率论与数理统计教程(第2版) 茆诗松全套PPT课件.ppt
- 瑶族舞曲(管弦乐)总谱.pdf VIP
- DCS控制室全操作规程.docx VIP
- 爱立信5G四期产品及建设方案介绍.pdf VIP
- 统编版八年级上册语文第一单元第2课《中国人首次进入自己的空间站》教学课件(新教材).pptx
- 《汽车鉴定与评估》全套课件.pptx VIP
文档评论(0)