# CINTA 作业一加减乘除: ------ ## 任务如下 > 1. >* 用 C 语言编程实现一种迭代版本的简单乘法。 >2. >* 证明命题1.1。 >3. >* 完成定理1.1的证明(除法算法) ### 1.用 C 语言编程实现一种迭代版本的简单乘法。 > ```c++ #include <iostream> using namespace std; int inverse(int a, int b) { int s = 0; while (b != 0) { s = s + a; b = b - 1; } return s; } int main() { int m, n, s; cin >> m; cin >> n; s = inverse(m, n); cout << endl << "m*n=" << s; return 0; } ``` ### 2.证明命题1.1。 > 若有a|b,b|c,则有a|c; > 证明: > >* 由a|b,b|c可知a=qb,b=pc,存在p,q使得该等式成立 >* 则a=q(b)=q(pc)=pqc >* 可知pq为整数 >* 则a|c可证 >若有c|a,c|b,则有c|(ma+nb); >* 由c|a,c|b可知存在整数p,q使得c=qa,c=pb >* 则 ma+nb=mqc+npc=(mq+np)c >* 而 mq+np为整数 >* 可得c|(ma+nb) ### 3.定理1.1的计算除法运算 >* 1.存在性: 存在一个最小元 r ∈ S,且 r = a − qb。 则a = qb + r, r ≥ 0。 且由a=qb+r得a/b=q+r/b,显然有a/b≥q, 而a/b是个有理数,取值范围为q≤a/b<q+1。 则q+r/b<q+1即r/b<1即r<b >* 2.唯一性: 假定存在两对整数对q1和r1、q2和r2,且q1≠q2、r1≠r2 则有q1b+r1=q2b+r2=a 可得(q1-q2)*b=r2-r1。 而q1≠q2,且q1和q2都是整数,q1-q2≠0, 而r2-r1=(q1-q2)*b 可得 (r2-r1)|b,0<=(r2-r1)<=r2<b 而能满足该条件必须有r1=r2,q1=q2,与假设矛盾 因此不存在两队整数对使a=qb+r