CINTA作业一:加减乘除
1.用C语言完成一种迭代版本的简单乘法
int multiplicine(int val1, int val2) {
int sum = 0;
for (int i = 0; i < val2; ++i) {
sum += val1;
}
return sum;
}
2.证明命题1.1
**题目:**设 a, b, c ∈ Z,如果 a | b,b | c,则 a | c。如果 c | a,c | b,则对任意 m, n ∈ Z,有c | (ma + nb)。
证明:
(1)因为 a | b, b | c,则存在整数 m,n 使得 b = m * a ,c = n * b 成立,故一定存在整数 k = m * n使得 c = k * a 成立,所以 a | c 成立。
(2)因为 c | a, c | b,则存在整数 p,q 使得 a = p * c, b = q * c 成立,假设 c | (ma + nb) 成立,则有 ma + nb = k * c,其中k为整数,又 ma + nb = mqc + npc = (mq + np) * c,而 k = mq + np始终有解,故命题成立。
3.证明定理1.1(除法算法唯一性)
**题目:**对任意给定的整数 a 和 b,其中 b > 0,存在唯一的整数对 q(商)和 r(余数)使得,a = qb + r 且 0 ≤ r < b。
证明:
- 假设存在q1,q2,r1,r2,且 q1 != q2, r1 != r2,使得a = q1 * b + r1,a = q2 * b + r2,构造集合S = {a − bk : k ∈ Z 且 a − bk ≥ 0}.
- 由良序原则,存在一个最小元 r2 ∈ S,且r2 = a - bq2,又r1 ∈ S且r1 != r2 ,因此r1 ≥ b+r2,又题目要求0 ≤ r < b,二者矛盾,因此不存在q1 != q2,r1 != r2使a = qb + r成立,故命题唯一性得证。