當前位置:編程學習大全網 - 編程軟體 - C語言編程題,整形的內碼對稱問題。

C語言編程題,整形的內碼對稱問題。

#include<iostream>

#include <stdio.h>

using namespace std;

int panduan(char *s)

{

int i, flag=true;

// 既然知道是32為整數,有時參數可以用常量(比如i<16)

for(i=0;i<16;i++)

{

if(s[i]!=s[31-i])

{

flag=false;

break; // 若已知不對稱,循環可以提前退出

}

}

return flag;

}

int main()

{

int a;

int counter=0;

// cin>>a 和scanf("%d",&a)!=EOF有區別

// 在a=-1時前者會以為是文件結束,後者不會

while(scanf("%d",&a) != EOF)

{

char s[32];

for(int i=0;i<32;i++)

{

s[i]=a%2; // 用a&1更好壹些,以為位操作比取模操作快

a >>= 1; //這裏不能用a=a/2,如果a是負數,符號位1不會因為除法運算而移動

}

if(panduan(s)==1)

counter++;

}

cout<<counter<<endl;

return 0;

}

  • 上一篇:寶馬臺顯是什麽意思
  • 下一篇:動漫制作需要學什麽 制作動漫需要學習什麽
  • copyright 2024編程學習大全網