c语言快速判断一个数是偶数还是奇数

#include <stdio.h>

int main()
{
	int a;
	while(1)
	{
		printf("please input the number:\n");
		scanf("%d",&a);
		if(a&1)
		{
			printf("%d是奇数\n",a);
		}
		else
		{
			printf("%d是偶数\n",a);
		}
	}
	return 0;
}

这是一种个人感觉最快的方法啊!

从二进制的角度来考虑,因为任何一个奇数的二进制最低位都必须为1,所以和1进行位运算,可以很快的算出来。

c语言快速判断一个数是偶数还是奇数

时间: 2024-12-12 07:49:30

c语言快速判断一个数是偶数还是奇数的相关文章

vuex中filter的使用 &amp;&amp; 快速判断一个数是否在一个数组中

vue中filter的使用 computed: mapState({ items: state => state.items.filter(function (value, index, arr) { return index < 5 }) }), 如上所示,对于vuex,我们在使用mapState获取state时, 可以使用filter来过滤其中的元素,在filter的回调函数中接受三个参数,第一个是value,即每一个元素的值: 第二个是index, 即每一个元素所在的index, 第三个

c语言实现判断一个数是否是素数

就是判断一个数是否是素数,网上很多版本,我觉得都有点问题,今天一个朋友问我这个问题,我才知道,现在我就贴出自己的代码,很有用哦!! #include<stdio.h> #include<math.h> int Prime(unsigned int a) { unsigned int i; int k=0; if (a==1) k=1; else for(i=2;i<sqrt(a);i++) if(a%i==0) { k=1; break; } return k; } int

如何快速判断一个数是不是2幂数

现代的计算机是二进制的,在许多地方都要用到2的幂数,比如4,8,16,32,64,128等这些数字.并且在许多内存分配函数也是以这些数字为值进行分配的.那么如何快速判断一个数是不是2的幂数呢? 今天在看内核代码的时候,发现内核中是这样做的,其思想也是非常的简单! 基本思想是: 十进制表示                           二进制表示 4                                    100 3                               

【c语言】判断一个数是奇偶数

// 判断一个数是奇偶数 #include <stdio.h> void judge_sd(int a) { if ((a & 1) == 0) { printf("是偶数\n"); return; } else { printf("是奇数\n"); return; } } int main() { judge_sd(0); judge_sd(1); judge_sd(4); return 0; } 版权声明:本文为博主原创文章,未经博主允许不得

快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方!

将4的幂次方写成2进制形式后,很容易发现有个特点,2进制中只有1个1(1在奇数位置),并且后面跟了偶数个0:因此问题可以转化为判断1后面是否跟了偶数个0就可以了. 4的整数次幂的二进制可以写为2^(2*n),即也可以写成2的幂次方,当然就满足2的幂次方的条件,即num&(num-1)==0. 思路:首先用条件num&(num-1)==0来判断是否为2的幂次方,若不满足,则不是.若满足,再用条件num&0x5555 5555 来判断,若为真,则这个整数是4 的幂次方.否则不是. #i

【C语言】判断一个数的奇偶(位操作)

//判断一个数的奇偶 #include <stdio.h> int is_signal(int num) { if (num & 1) return 1; else return -1; } int main() { int a; printf("请输入:"); scanf_s("%d", &a); if (is_signal(a)==1) printf("奇数\n"); else printf("偶数\n&

【c语言】判断一个数是不是2的n次方

// 判断一个数是不是2的n次方 #include <stdio.h> void judge_n(int a) { int b = a - 1; if ((a & b) == 0) { printf("是2的n次方\n"); return; } else { printf("不是2的n次方\n"); return; } } int main() { judge_n(2); judge_n(3); judge_n(4); return 0; } 版

【c语言】判断一个数是不是回文数

//判断一个数是不是回文数 #include <stdio.h> #include <assert.h> int panduan(int *p) { int t = 0; int n = *p; assert( *p != NULL ); //每次取出最后一个数乘10加到前边去 while( *p != NULL ) { t = t * 10 + *p % 10; *p = *p / 10; } //如果是回文数就会相等 if( t==n ) { return 1; } else

【C语言】判断一个数是否为2的n次方

//判断一个数是否为2的n次方 #include <stdio.h> int is_two_n(int num) { if ((num&(num - 1))) //去掉一个1,判断是否为0 return -1; return 1; } int main() { int a; printf("请输入数字:"); scanf_s("%d",&a); if (is_two_n(a)==1) printf("该数是2的次方\n"