




免费预览已结束,剩余4页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
姓名: 学号:班级:指导老师: 学院:计算机学院1 大数相乘1. 问题描述两个比较大的数,远远超过long long 类型,相乘,并计算结果。2. 设计思路通过模拟手工计算两数相乘,从低位乘到高位,两重循环,第一重循环控制乘数的第i位数与被乘数的相乘,第二重循环是被乘数的第j位数。第二重循环每循环完一次,再把结果*10与上次的结果相加,这里又运用到了大数相加,这样一直处理到第一重循环结束。只要合理的处理好进位就可以了。3. 数据结构设计把两数每位数存放数组里,通过控制循环实现相乘。4. 功能函数设计void nixu()void mul ();计算两个存在数组里的大数计算相乘结果。5. 程序代码#include#includeusing namespace std;void nixu(char* str, int p, int q) char temp; while(p q) temp = strp; strp = strq; strq = temp; p +; q -; void mul(char* str1, char* str2)char result200; int l1 = strlen(str1); int l2 = strlen(str2); memset(result,0,l1+l2); resultl1+l2 = 0; nixu(str1, 0, l1-1); nixu(str2, 0, l2-1); int index1; int index2; for(int i=0;il2; i+) index1 = 0; index2 = 0; for(int j=0;jl1;j+) int temp1 = (str1j - 0) * (str2i - 0) + index1; index1 = temp1 / 10; temp1 = temp1 % 10; int temp2 = (resulti+j - 0) + temp1 + index2; index2 = temp2 / 10; resulti+j = temp2 % 10 + 0; resulti + l1 += index1 + index2; nixu(result, 0, l1+l2-1);cout相乘后的数字为:endl;for(int i=0;il1+l2;i+)if(resulti != 0)coutresulti;coutendl;int main()char str1100,str2100;cout请输入需要相乘的数字str1;cinstr2;int l1 = strlen(str1);int l2 = strlen(str2);mul(str1,str2);return 0;6运行测试7设计心得大数相乘和大数相加不一样,大数相加比大数相乘简单一些,所以在大数相乘这边花了一点时间。2 哈弗曼树1.问题描述欲发一封内容为AABBCAB (共长 100 字符,其中:A 、B 、C 、D 、E 、F分别有7 、9 、12 、22 、23、27个)的电报报文,实现哈夫曼编码,并求平均编码长度。2.设计思路建立一个哈夫曼树,求编码的,再求平均编码长度。3.数据结构设计建立一个储存字符出现数目以及字符编码后的长度struct Inforint weight ;int length ;w30;再建立一个储存哈夫曼树的结点数据结构typedef structchar ch;int weight;int lchild,rchild ,parent;Hnode;4.功能函数设计void select(const Hnode HT,int n,int &s1,int &s2)求数组中权值最小和次小的值的下标void HTree(Hnode *huff , Infor w , int n)建立哈夫曼树,编码和编码长度。5.程序代码#include #include #include typedef structchar ch;int weight;int lchild,rchild ,parent;Hnode;struct Inforint weight ;int length ;w30;void select(const Hnode HT,int n,int &s1,int &s2) int i; s1 = s2 = 0; int min1 = INT_MAX;/最小值,INT_MAX在中定义的 int min2 = INT_MAX;/次小值 for ( i = 1; i = n; +i ) if ( HTi.parent = -1 ) /筛选没有父节点的最小和次小权值下标if ( HTi.weight = min1) & (HTi.weight min2) ) /如果大于等于最小值,且小于次小值 min2 = HTi.weight; s2 = i; else /如果大于次小值,则什么都不做 ; void HTree(Hnode *huff , Infor w , int n)int m = 2*n-1 ,sum , s1 ,s2 ;for(int i = 1 ; i = n ; +i )huffi.weight = wi-1.weight;huffi.lchild = huffi.rchild = huffi.parent = -1 ;for(int i = n+1 ; i = m ; +i)huffi.weight = -1;huffi.lchild = huffi.rchild = huffi.parent = -1 ;if(n != 1)for(int i = 1 ; i = n-1 ; +i )select(huff,n+i-1,s1,s2);sum = huffs1.weight+huffs2.weight ;huffn+i.weight = sum ;huffs1.parent = huffs2.parent = n + i ;huffn+i.lchild = s1 ;huffn+i.rchild = s2 ;elsew0.length = 1;for(int i = 1 ; i = 0 ; -i)putchar(tempi) ;puts() ;int main()Hnode huff60 ;char str1000;w0.weight = 7 ;w1.weight = 9 ;w2.weight = 12;w3.weight = 22;w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度黑龙江省气象部门高校毕业生招聘4人(第三批次气象类)考前自测高频考点模拟试题附答案详解(完整版)
- 2025北京华商电力产业发展有限公司2025年搞笑毕业生招聘29人(第三批)考前自测高频考点模拟试题及答案详解(易错题)
- 2025年上海市第一人民医院酒泉医院自主招聘专业技术人员30人考前自测高频考点模拟试题带答案详解
- 2025江西吉安市直三家公立医院编外招聘33人模拟试卷及答案详解(全优)
- 2025年氨纶锦纶包覆丝项目合作计划书
- 2025黑龙江绥化望奎县事业单位招聘71人模拟试卷及1套完整答案详解
- 2025湖南湘江爱乐乐团招聘考前自测高频考点模拟试题及答案详解(夺冠)
- 2025贵州茅台酒股份有限公司高层次人才(博士研究生)引进14人模拟试卷及一套答案详解
- 2025春季河南新乡工商职业学院招聘考前自测高频考点模拟试题及答案详解(名师系列)
- 2025年临沂市工业学校公开招聘教师(40名)模拟试卷带答案详解
- JT-T-325-2018营运客运类型划分及等级评定
- JT-T-844-2012港口设施保安设备设施配置及技术要求
- 湘教版版八年级上册地理知识点复习总结
- 2069-3-3101-002WKB产品判定准则-外发
- (正式版)JBT 14587-2024 胶体铅酸蓄电池 技术规范
- 美国发布2024版《关键和新兴技术清单》(英)
- 敬老院改造工作计划书
- 郝万山教授要求必背的112条《伤寒论》论原文
- 江苏省镇江丹阳市华南实验学校2023-2024学年九年级上学期第一次月考数学试题(无答案)
- 第12讲 齐次化巧解双斜率问题(解析几何)(解析版)
- 制氮机设备设施风险点日常检查表
评论
0/150
提交评论