算法分析与设计:作业计算机学院刘在德
习题1.1—6,P66.证明等式gcd(m,n)=gcd(n,mmodn)对每一对正整数都成立证明:m可以表示成m=kn+r,则r=mmodn
假设d是m,n的一个公约数,则有
d|m,d|n,而r=m-kn,因此d|r
因此d是(n,mmodn)的公约数
假设d是(n,mmodn)的公约数,则
d|n,d|r,但是m=kn+r
因此d也是(m,n)的公约数
因此(m,n)和(n,mmodn)的公约数是一样的,其最大公约数也必然相等,得证
习题1.1-9,P69.用减法实现Euclidean算法解:算法Euclid(m,n)
//求两个不全为0的非负整数的GCD
ifm=0returnn
ifn=0returnm
whilem≠ndo
ifmn
m-m-n
ifmn
n=n-m
returnm
习题1.2—5,P135.写出十进制正整数转换为二进制整数的算法解:算法Binary(n)
//输入:十进制正整数n
原创力文档

文档评论(0)