1. 用 C 语言编程实现判断输入为偶数的函数,即如果输入为偶数,返回 True,否则 返回 False。
bool f(int n)
{
if(n&1) return false;
else return true;
}
  1. 用 C 语言编程实现一种迭代版本的简单乘法。
int multiple(int a,int b)
{
if(b==0) return 0;
int res=0;
while(b)
{
if(b&1) res+=a;
a<<=1;
b>>=1;
}
return res;
}
  1. 证明命题1.1。

    题目:

a,b,cZ,如果abbc,则ac如果cacb,则对任意m,nZ,有c(ma+nb)设 a, b, c ∈ Z,如果 a | b,b | c,则 a | c。\\ 如果 c | a,c | b,则对任意 m, n ∈ Z,有 c | (ma + nb)。

​ 证明:

因为ab,所以存在整数q使得b=qa,因为bc,所以存在整数p使得c=pb因此,c=pqa,即存在整数pq使得c=pqa,所以ac因为a|b,所以存在整数q使得b=qa,因为b|c,所以存在整数p使得c=pb。\\ 因此,c=pqa,即存在整数pq使得c=pqa,所以a|c。

因为ca,所以存在整数q使得a=qc,因为cb,所以存在整数p使得b=pc任取mnZma+nb=mqc+npc=(mq+np)c,所以c(ma+nb)因为c|a,所以存在整数q使得a=qc,因为c|b,所以存在整数p使得b=pc,\\ 任取m,n∈Z,ma+nb=mqc+npc=(mq+np)c,所以c|(ma+nb)

  1. 给定一个整数 v,如何判断 v 是否 2 的某次方?比如,v = 4 = 22,返回 T rue; v = 9 = 23 + 1 并非 2 的次方,返回 False。请写一个 C 语言的函数来实现以上功 能。
int f(int v)
{
if(v==1) return true;
else if(v==0) return false;
else if(v&1) return false;
return f(v>>1);
}