//推断一个数是否为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"…
// 推断一个数是不是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; }…
//推断一个数的奇偶 #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&…
// 推断一个数是奇偶数 #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; }…
2422: C语言习题 n个数逆序 时间限制: 1 Sec  内存限制: 128 MB 提交: 150  解决: 96 题目描述 将n(n<20)个数按输入时顺序的逆序排列,用函数实现. 输入 n 和 n个整数 输出 逆序输出,空格分开 样例输入 10 1 2 3 4 5 6 7 8 9 0 样例输出 0 9 8 7 6 5 4 3 2 1 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C代码 */ int main() {     void sort (int *p,int m);…
VS2012 //C语言实例 3个数由小到大排序 #include <stdio.h> void main() { int a, b, c, t; printf("Please input a,b,c;\n"); scanf("%d%d%d", &a, &b, &c); if (a > b) { t = a; a = b; b = t; } if (a > c) { t = a; a = c; c = t; } if…
#include <stdio.h> /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方: 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)=13 e(E)=14 f(F)=15 例如:CE=12*16^1+14*16^0=192+14=206 */ //右旋转把第一位 放到最后 0x2345 => 0x3452 num左移1位0x3450;即1个16进制位等于4个二进制位 //或上 num右移3位0x0002 相当于3*4=12个二进制位…
「ALBB面试题」 [题目] 如何判断一个数是否为2的n次方 [题目分析] 看到这种题,相信大家第一反应就是循环除2,这样做肯定是可以得出结果的:但是这种做法无疑大大增加了计算机的运行时间,一个非常大的数字可能会让计算机内存溢出,有没有更好的解决方式呢?有!如果你对数字2敏感,那么一定会想到二进制方法,20=0b1.21=10.22=0b100.23=0b1000......通过找规律发现,只要是2的n次方,它的二进制表示形式中1只有一个.所以本题转换为判断一个数字的二进制形式中1是否只有一个.…
import java.util.Scanner; /** * 功能:用位运算,判断一个数是否为2的n次方. * 思路:用1做移位操作,然后判断移位后的值是否与给定的数相同. */ public class Main3 { public boolean isPower(int n) { if (n < 1) { return false; } int m = 1; while (m < n) { m = m << 1; } if (m == n) { return true; }…
#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; } 这是一种个人感觉最快的方法啊! 从二进制…