解题思路:把一个十进制数转换为一个32位二进制数保存到字符数组中,然后判断是否对称即可,用一个变量统计对称个数。
注意事项:
参考代码:
#include<stdio.h> #include <string.h> #define N 40 int judge(char a[]) //判断是否对称 { int i,j,len; len=strlen(a); for(i=0,j=len-1;i<j;i++,j--) if(a[i]!=a[j]) return 0; return 1; } int main() { char a[N]; unsigned int n; //注意必须定义无符号整数 int i,count=0; while(scanf("%u",&n)!=EOF) { for(i=0;i<32;i++) //转换为二进制数字符串 { a[i]=n%2+'0'; n=n/2; } a[i]='\0'; if(judge(a)) //对称则加1 count++; } printf("%d",count); return 0; }
0.0分
1 人评分
【偶数求和】 (C语言代码)浏览:639 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:851 |
WU-复数求和 (C++代码)浏览:1995 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:632 |
DNA (C语言代码)浏览:540 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:606 |
C二级辅导-分段函数 (C语言代码)浏览:593 |
C二级辅导-公约公倍 (C语言代码)浏览:482 |
良心推荐——>题解1049:C语言程序设计教程(第三版)课后习题11.1 (C语言描述——简单明了,时间复杂度低)浏览:1273 |
JAM计数法 (C语言代码)浏览:666 |