C课件案例五196回文数猜想验证

上传人:gb****c 文档编号:243023502 上传时间:2024-09-14 格式:PPT 页数:19 大小:193.50KB
返回 下载 相关 举报
C课件案例五196回文数猜想验证_第1页
第1页 / 共19页
C课件案例五196回文数猜想验证_第2页
第2页 / 共19页
C课件案例五196回文数猜想验证_第3页
第3页 / 共19页
点击查看更多>>
资源描述
,目录,退出,目录,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,案例五 196回文数猜想的验证,本案例知识要点,字符数组的使用,字符串函数的使用,一、案例需求,案例描述,上一案例中提出了对特殊数字“196”的回文数猜想验证的编程实现思想。这里给出具体的实现方法。,案例效果图,196回文数猜想案例效果如图所示。,17 709次,241 388次,功能说明,程序开始运行后,用户输入数字196。,程序进行计算,计算完成后给出已经计算的次数和运算结果。,根据运算结果,给出在一定范围内是否存在回文数的结论。,二、案例分析,上一案例中使用了long型数据存储回文数的计算结果,笔者所使用的计算机是32位机,当运算结果超出32位机的最大计数范围2 147 483 647后,会出现错误的计算结果,因此上例只能运算到第17步,无法继续验证数字196是否能推出一个回文数。据报道:有人已经计算数字196达到50 000步以上,还是没有回文数出现。本案例采用字符数组存储数据,克服了long型数据容量的限制缺点,即将原数、逆序数和累加和分别存放在3个不同的字符数组num1Max、num2Max和sumMax中,num1数组中的数与num2数组中的数的顺序刚好相反,运算时使相应位相加即可。在sum数组中存放num1和num2之和,当然还要考虑进位标志cf,然后将sum数组赋给num1数组,重复以上步骤进行计算。,三、案例设计,函数的设计,根据上述的设计思想,本案例中设计了5个函数,包括“整型转换成字符型函数”、“回文数比较函数”、“两数相加函数”、“数组调整函数”和“计算长度函数”。,整型转换成字符型函数,inttochar (),回文数比较函数cmp(),定义类型为布尔型的函数,cmp(),。,两数相加函数,add(),定义类型为void型的无参函数,add(),。,数组调整函数,adjust(),定义类型为void型的无参函数,adjust(),。,计算长度函数,int length(),定义类型为整型的无参函数,length(),。,主程序设计,主程序结构如图所示。,四、案例实现,五、案例总结与提高,案例总结,在本案例的具体设计和实现过程中,使用了字符数组进行处理,最早字符数组num1内为有效数字在前,后面全部为“0”,如:“19600000”格式,但为了计算相加后的进位,需要调整为“00000196”格式,adjust()函数的作用就在于此。,进位的相加使用了ASCII值,例如9的ASCII为十进制数57,请参看add()函数。,虽然字符串函数中有strlen()函数,可以计算字符数组的有效长度,但这只是对于“19600000”格式有效,而对于“00000196”则不能使用,需要重新编制length()函数进行统计。,判断是否为回文数,使用了折半比较算法。,案例提高,本算法可以进行任意数量级的计算,程序结果显示进行了字长为100 000的计算,计算次数达到241 388次,仍没有为196找到回文数,有兴趣的读者可以修改Max值,进行更大次数的计算。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!