一、用 C 语言编程实现一种迭代版本的简单乘法
代码如下:
int inverse(int n)
{
int s=0;
while(n>0)
{
s=s*10+n%10;
n=n/10;
}
return s;
}
二、证明命题1.1
证明如下:
三、完成定理1.1的证明(除法算法)
定理 1.1. 除法算法
证明如下:
1、证明存在性:
构造集合
S = {a − bk : k ∈ Z 且 a − bk ≥ 0}.
显然,集合 S 非空。由良序原则,存在一个最小元 r ∈ S,且 r = a − qb。因此,
a = qb + r, r ≥ 0。
若r>=b,则可设r=b+m,其中m ∈ Z 。则a=qb+b+m=(q+1)b+m。不符合商和余数的原则。
2、证明唯一性:
假设存在不止一个整数对满足条件,则可设:
a=q1b+r1
a=q2b+r2
不妨设q1>q2,显然可得r1<r2.
q1b+r1=q2b+r2
(q1-q2)*b=r2-r1
b=(r2-r1)/(q1-q2)
因为0<=r1<b,0<=r2<b,r1<r2;所以0<r2-r1<b.
因为q1,q2为整数,q1>q2;所以q1-q2>=1.
因为0<r2-r1<b,q1-q2>=1,所以(r2-r1)/(q1-q2)<b,与b=(r2-r1)/(q1-q2)矛盾。
因此,假设不成立。唯一性得证。