- 2
- 0
- 约4.38千字
- 约 7页
- 2026-03-11 发布于广西
- 举报
PAGE
PAGE1
大整数的除法问题
教学目标
1.知识与技能
学习大整数除以普通整数的算法
用余数定理解决大整数除以普通整数的余数问题
学习大整数除以大整数的算法
2.过程与方法:
学习流程:讲授——模仿——练习
通过课堂练习,巩固课堂内容。
教学重点、难点
【重点】
模拟竖式计算大整数除以普通整数的算法
模拟竖式计算大整数除以大整数的算法
【难点】
模拟竖式计算大整数除以大整数的商和余数
课时安排
课时安排:120分钟
四、上课准备
课程相关ppt、白板、白板笔、积分卡
课前检查电脑、投影仪、网络是否有故障,及时修复。
五、教学活动
活动时长
教学活动
注意事项
课前准备
老师准备学生电脑,保证电脑能正常使用;打开投影仪,打开上课课件,以最饱满的热情迎接学生!
提前10分钟准备
开场白
欢迎各位同学回到吉码信息学课堂。
引入
高精度计算中,过去我们一般不接触除法问题,原因是除法的代码量较大,而且编程难度较高。现在,我们需要把这个问题研究透彻。除法问题中,大整数除以普通整数的问题比较常见,问题复杂度也比较低,只要能够把问题转化为数学问题即可解决。高精度数除以高精度数,用于大整数的因数分解中显得很慢,在其他方面应用不多。
学习内容(1)
(一)大整数除以普通数
大整数的除法由于运算顺序和复杂度的原因,不得不采用与其他计算不同的大整数存储方式。高精度数除以普通数字,采取的方法是模拟竖式除法的按位相除法而且不采用倒序转存方式,但第0位置仍然用来存储位数;
核心代码:
c[i]=(x*10+a[i])/b;
x=(x*10+a[i])%b;
x是余数。
因为除数是普通整数,所以x也是普通整数。
示范代码:ppt5-6
【提问】如果商并不是从第一位开始的,需要特殊处理吗?比如123/9,商不是从最高位就有的,而是从次高位开始有。这种情况需要特殊处理吗?
【参考答案】需要去除前导0,但不需要预判,按部就班处理就可以了。在最高位上,如果商为0,会把数字计入余数继续计算。所以后面有去除前导0的处理。
ppt7:高精度数除以普通整数的优化
实质上,在高精度除以普通整数运算时候,存储高精度数的数组元素可以不仅仅只保留一个数字,而采取保留多位数(例如一个整型或长整型数据等),这样,在做运算(特别是乘法运算)时,可以减少很多操作次数。例如下图就是采用4位保存的除法运算,其他运算也类似。具体程序可以修改上述例题予以解决,程序请同学们课后独立完成。注意,如果每四位压缩在一个存储单元,那么如果一个单位的商不足四位时要用0补足四位。
上面的压位,其实就是把n位数作为1位来处理,运算的时候算法步骤不需要做大的变动。但在输出的时候,如果分的是四位作为一个数位(即万进制,满万进位)得到的结果在内存中是这样的:274,234,0;按照万进制,实际上的结果应该是这样的:
27402340000;最高位本来也要补0,但因为是前导0所以去掉了。也就是说,每一个数位都要补齐万进制表示,少于4位的要补0.如果不这样做,输出的结果就会发生错误。这个输出我们可以借助printf()函数很方便做到。
二、大整数除以普通整数的余数
大整数运算很麻烦,但如果只是需要做大整数t除以某个一位数g的余数时,我们可以采用余数定理,避开高精度计算。
示例:
计算1244%9时,把1244拆分为若干小整数的表达式,分步骤得到1244,再利用余数定理在此过程中取余数,从而避开高精度计算。
1*10+2=12
12*10+4=124
124*10+4=1244
原来的计算式:1244/9=1382
现在可以这样计算:
1244%9=(((1*10)+2)%9*10+4)%9*10+4)%9
=((12%9*10+4)%9*10+4)%9
=(34%9*10+4)%9
=74%9
=2
输入一个大整数和一个普通整数,计算大整数除以普通整数的余数的核心代码:
chara[1000];
intb,r=0;
cinab;
intl=strlen(a);
for(inti=0;il;i++){
r=(r*10+a[i]-0)%b;
}
coutb;
在白板上写竖式,分析算法过程。
这个问题在高精度除以高精度时也类似。
具体程序留给同学们课后独立完成。包括前面的乘法、加法、减法也可以用这种“压位”算法,可以提高数倍的效率。
这里控制在1小时左右。如果有多的时间,让学生实现“压位”的高精度除以低精度算法。
学习内容(2)
三、大整数除以大整数的商和余数
算法分析】
大整数除以普通整数是对被除数的每一位(这里
您可能关注的文档
- python编程11-排列小星星.docx
- python编程11-排列小星星.pptx
- python编程12_三叶风车.docx
- python编程12-初识列表.docx
- python编程13_多叶风车.docx
- python编程13-列表的使用.docx
- python编程14_彩色风车.docx
- python编程14_彩色风车.pptx
- python编程14-元组与集合.docx
- python编程15_半圆风车.docx
- 宣贯培训(2026年)《NYT 4512-2025 非洲菊疫病抗性鉴定技术规程》.pptx
- 宣贯培训(2026年)《NYT 4514-2025木薯副产物综合利用导则》.pptx
- 宣贯培训(2026年)《NYT 4513-2025木薯全程机械化生产技术规范》.pptx
- 宣贯培训(2026年)《NYT 4470-2025全株玉米青贮质量分级》.pptx
- 宣贯培训(2026年)《NYT 4468-2025玉米供需平衡表编制规范》.pptx
- 宣贯培训(2026年)《NYT 4469-2025全株玉米青贮质量评定 综合指数法》.pptx
- 宣贯培训(2026年)《NYT 4474-2025东北地区玉米-大豆轮作生产技术规程》.pptx
- 宣贯培训(2026年)《NYT 4472-2025玉米耐盐碱鉴定评价技术规程》.pptx
- 宣贯培训(2026年)《NYT 4473-2025玉米抗旱性鉴定评价技术规程》.pptx
- 宣贯培训(2026年)《NYT 4478-2025甘薯收获技术规程》.pptx
原创力文档

文档评论(0)