- 用 C 语言编程实现判断输入为偶数的函数,即如果输入为偶数,返回 True,否则
返回 False。
解法:
利用二进制性质一:
偶数二进制最末尾的比特是 0;奇数二进制最末尾的比特是 1。
将输入的某数通过位运算符“&”和1进行运算的结果来判断奇偶。
代码:
#include<stdio.h>
void is_even(int n) {
if (n & 1) printf("False\n");
else printf("True\n");
}
int main() {
int n;
for(int i=0;i<4;i++)
{
scanf_s("%d", &n);
is_even(n);
}
return 0;
}
运行结果测试:
3. 用 C 语言编程实现一种迭代版本的简单乘法。
代码:
#include<stdio.h>
int is_even(int n) {
if (n & 1) return 0;
else return 1;
}
int multiply(a, b)
{
if (b == 0)
return 0;
if (is_even(b))
return 2 * multiply(a, b / 2);
else return 2 * multiply(a, b / 2) + a;
return 0;
}
int main()
{
int a, b;
scanf_s("%d%d", &a, &b);
multiply(a, b);
printf("%d" "*" "%d" "=" "%d\n", a, b, multiply(a, b));
}
运行结果测试:
- 证明命题1.1。
命题 1.1. 整除性
设 a, b, c ∈ Z,如果 a | b,b | c,则 a | c。如果 c | a,c | b,则对任意 m, n ∈ Z,有
c | (ma + nb)。
证明:
∵ a、 b、 c ∈ Z ,a | b,b | c
∴存在q,p∈ Z, a = qb,b=pc
∴a=qb=qpc
∵q,p,c∈ Z
∴qpc∈ Z
∴a|c
∵a、 b、 c ∈ Z,c | a,c | b
∴存在q、p∈ Z, a=qc,b=pc
∴任意 m、 n ∈ Z,有ma+nb=(mq)c+(np)c=(mq+np)c
∵(mq+np)c∈ Z
∴c|(mq+np)c
∴c|(ma+nb)