注意事项: 输入的n不能为int型,估计后台测试的数据里有大于int表示范围的。。。
参考代码:
#include<stdio.h> //#include<memory.h> int isOrNot(long long dec){ int i = 0; int num[32]; //memset(num, 0, 32 * sizeof(int)); while(i < 32){ num[i++] = dec % 2; dec /= 2; } int flag = 1; for(int j = 0; j < 16; j++){ if(num[j] != num[31 - j]){ flag = 0; break; } } return flag; } int main(){ long long n; int number = 0; while(scanf("%lld", &n) != EOF){ if(isOrNot(n) == 1) number++; } printf("%d\n", number); return 0; }
0.0分
0 人评分
您好,判断的时候如果用位运算的话,会不会更快: bool IsDuichen(long n) { long long num1,num2; for(int i=0;i<16;i++) { num1=n<<i; num2=n<<(31-i); if(num2!=(num1<<31-(2*i))) {return false;} } return true; }
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:436 |
【回文数(二)】 (C语言代码)浏览:800 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:631 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:568 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:1314 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:672 |
字符逆序 (C语言代码)浏览:645 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:569 |
1071题解浏览:584 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:567 |