CINTA 整数与二进制1

1,用c++编程实现判断输入为偶数的函数,即如果输入为偶数,则返回True否则返回False

int fun(int a)
{
  if((a%2)==0)//偶数
return ture;
  else
return false;//奇数
}

2,给定一个整数V,如何判断V是否为2的某次方,比如,v=4=2^2,返回true;v=9=2^3+1并非2的次方,返回false,请写一个c语言的函数来实现以上功能

注:算法的核心思路在于对整除和最后结果是否为1进行判断;

int fun(int n)
{
	while(n)
	{
		if(n % 2) return 0;//余数不为0返回错误
		n /= 2;	// n = n / 2,整除
		if(n == 1) return 1;
	}
	return 0;
}

3用c语言编程实现一种迭代算法的简单乘法

int add (int a,int b)
{
int sum=0;//记录结果
  if(b==0)
  return 0;
else
{
   for(int i=0;i<b,i++)
   {
     sum+=a;
    }//设置循环实现迭代
}
return  sum;//返回结果
}

4证明命题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,c∈Z,如果a|b,b|c,由除法算法得

存在k1,k2∈Z,且0<k;

使得

b=k1 *a;

c=k2*b;

∴c=k2*b=k2*k1*a;

∴a整除c,即a|c;

(2)如果c|a,c|b,

由(1)同理得

a=k1*c;

b=k2*c;

ma+mb=m*k1*c+m*k2*c;=(m*k1+n*k2)*c

∴c整除ma+mb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值