一个数的各位数字倒过来所得到的新数叫的反序数。如果一个数等于它的反序数,则称它为对称数或回文数。下列 1500~2000 之间的二进制对称数,算法思想是:将正整数的二进制字符形式,按正序和反序两种方式放入两个字符数组;然后比较这两个字符串,若相等则是二进制对称数,否则不是二进制对称数。请完善程序。 #include
using namespace std; __(1)__f(char *str,int num) { static char s[33]; char *p,c; p=&s[31]; while(num){ c=__(2)__; // 求 num 的最低位二进制的字符表示形式 num/=2; *str++=c; __(3)__; } p++; return p; } int main(void) { char s[33]={0},*p; int count=0; cout<<" 二进制对称数如下 :\n"; for(int n=1500; n<2000; n++){ p=__(4)__; if(strcmp(s,p)==0){ cout<<"n="<
<<" ,二进制形式为 :"<
<