收藏 分享(赏)

递归进阶与习题讲解和高精度.ppt

上传人:hwpkd79526 文档编号:6658334 上传时间:2019-04-19 格式:PPT 页数:20 大小:192.50KB
下载 相关 举报
递归进阶与习题讲解和高精度.ppt_第1页
第1页 / 共20页
递归进阶与习题讲解和高精度.ppt_第2页
第2页 / 共20页
递归进阶与习题讲解和高精度.ppt_第3页
第3页 / 共20页
递归进阶与习题讲解和高精度.ppt_第4页
第4页 / 共20页
递归进阶与习题讲解和高精度.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、递归进阶与习题讲解,问题背景,暴力N重循环 生成长度为1的序列: for (int i=1;i=n;+i) cout i endl; 生成长度为2的序列: for (int i=1;i=n;+i) for (int j=1;j=n;+j) cout i j endl;生成长度为n的序列:需要n重循环?,深度优先搜索入门,n重循环 void dfs(int deep) if (deep n)/check answerelsefor (i = 1; i = n; i+)dfs(deep + 1); ,搜索过程如下:,H,A,L,I,F,B,C,D,E,J,G,K,S,深度优先搜索示意图,例题:放鸡

2、蛋,想想,鸡蛋的篮子相当于什么? 然后如何让每个篮子的鸡蛋横向递增。 放鸡蛋的递归模型是什么?,不难看出放鸡蛋问题实质就是n重循环。第几个篮子就相当于第几层循环。然后是纵向搜索,再是横向遍历。同样道理,深搜也是n重循环的体现。,高精度算法,问题背景:当我们遇到的数字超过了unsigned long long时,要如何存储呢? 比如3200,高精度加法,void add(char s1,char s2,int a,int b,int c)int len1 = strlen(s1);int len2 = strlen(s2);for(int i = len1-1; i=0; i-)alen1-1-

3、i = (int)(s1i-0);for(int i = len2-1; i=0; i-)blen2-1-i = (int)(s2i-0);int tmp = max(len1,len2);for(int i = 0; i=10) ci%=10;ci+1+; ,高精度减法,void decrease(char* a,char* b) int len = strlen(a);int len2 = strlen(b);int tmp210 = 0;for(int i = 0; ilen; i+)reli = (int)(ai-0);for(int k = 0; klen2; k+)tmpk =(i

4、nt) (bk-0);for(int i = 0; ilen; i+) reli = reli-tmpi;if(reli0)reli+=10;reli+1-;/printf(“%d “,reli); ,高精度乘法,1.高精度*高精度 void multiply( char s1,char s2,int a, int b, int c) int len1 = strlen(s1);int len2 = strlen(s2);for(int i = 0; ilen1; i+) for(int j = 0; jlen2; j+) ci+j +=( ai*bj);for(int i = 0; ilen

5、1+len2-1; i+) ci+1 += (ci/10);ci = ci%10;,高精度乘法,高精度*单精度 void multiply(char s1,int a,int c)int len = strlen(s1);for(int i = len-1; i=0; i-) alen-1-i=(int)(s1i-0);for(int i = 0; ilen+4; i+) ci+=(ai*b);for(int i = 0; ilen+4; i+) ci+1+=(ci/10); ci%=10;,高精度除法,方案一:不断作减法 也就是不多调用高精度的减法,知道做减法的次数与除数相同。,高精度除法,方案二:二分试探商(也是在减法基础上),#include #include #include using namespace std;int lenth(int n)/求数字长度(位数)函数int i=0;while(n0)n/=10;i+;return i;int main()char a102;int b;cinab;/输入除数与被除数/cout1,课堂练习题:,DFS,将所有5位数输出,sicily6345讲解,作业:Sicily 1159. sumSicily 1381. a*bSicily 1029. Rabbit,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 试题课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报