解题思路:
把10进制变成32位二进制存储,判断对称即可。
核心代码:
arr[i] = (num >> i) & 1
参考代码:
#include<bits/stdc++.h> using namespace std; typedef long long LL; int main() { LL num; int arr[32]; int total = 0; while (cin >> num) { for (int i = 0; i < 32; i++) arr[i] = (num >> i) & 1; bool is = true; for (int i = 0; i < 32 / 2; i++) if (arr[i] != arr[32 - 1 - i]) { is = false; break; } if(is) total++; } cout << total << endl; return 0; }
0.0分
0 人评分
2005年春浙江省计算机等级考试二级C 编程题(3),复杂度最低的方法没有之一!!!!!浏览:856 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:650 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:612 |
九宫重排 (C++代码)浏览:2194 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:903 |
简单的a+b (C语言代码)浏览:457 |
陶陶摘苹果2 (C语言代码)浏览:650 |
C语言训练-字符串正反连接 (C语言代码)浏览:653 |
C二级辅导-分段函数 (C语言代码)浏览:790 |
判定字符位置 (C++代码)浏览:733 |