今天遇到了一个问题,遇到一个32位的数据,写一个子函数来判断它的多少位是1.我的思路一开始是把这个数据变成一个32位容量的数组然后每个位去比较是不是1,如果是1,就用另一个变量加1.最后返回这个变量. 但是这样不对当而且也没有必要转成数组来做. int count_bit (unsigned int a) { ; while (a) { counts += a & 0x1u ; a >>= ; } return counts ; } 这个子函数,把想要判断的32位数据传入进来.然后先对
//1-10000以内的完数 //完数:因子之和相加等于这个数 //例如:6的因子为1,2,3:1+2+3=6 // 6 // 28 // 496 // 8128 let sum = 0, i, j; //for循环应该是从1开始小于自己本身 for (i = 1; i < 10000; i++) { sum = 0;//每一次需要重置sum //通过该层for循环找出因子 for (j = 1; j < i; j++) { if (i % j == 0) { sum = sum + j; }
素数的定义: 素数(prime number)又称质数,有无限个. 素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为素数.代码1: #include<stdio.h> int main() { int m, n; printf("请输入一个正整数:\n"); scanf_s("%d", &m); ; n < m - ; n = n + ) ) break; if (n < m) printf("%