題目:輸入乙個32位的整數a,使用按位異或^運算,生成乙個新的32位整數b,使得該整數b的每一位等於原整數a中該位左右兩邊兩個bit位的異或結果
#include
int main()
int t,i,c;
int b=1,j=1;
int a[32];
int p[32];
printf(「please input one numbers(0-32):」);
scanf("%d",&t);
for(i=0;i<32;i++)
c= b & t;
t = t>>1;
a[i]=c;
p[0]=a[0];
p[31]=a[31];
for(i=0;i<30;i++)
if(a[i]==1 &&
a[i+2]==1)
p[j]=0;
else
p[j]= a[i] | a[i+2];
j++;
for(j=31;j>=0;j–)
printf("%d",p[j]);
printf("\n");
return 0;
題目:有n個人圍成一圈,順序排號,從第乙個開始報數(從1到3報數),凡報到3的人退出圈子,問最後最後留下的是原來第幾號的那位.
#include
int main()
printf(「please input a number,which is 4 to 1000\n」);
int n,i,t,b,c,d;
int a[1000];
int sum=0;
int number=0;
scanf("%d",&n);
if(n<=3)
printf("error!under four people can』t encircle a circle\n ");
for(i=0;inumber=number+1;
if(n-number==2)
continue;
}}
c=i+1;
for(i=0;inumber is %d",t);
}if(c>b || ccnumber is %d",b);
}return 0;
加強版
#include
int main()
printf(「please input a number\n」);
int n,i,c;
int a[1000];
int sum=0;
scanf("%d",&n);
c=n;
for(i=0;ii=0;
while(n>1)
if(i==c)
i=0;
if(a[i]==1)
sum=sum+1;
if(sum==3)
i++;
for(i=0;inumber is %d",i+1);
}return 0;
1.
題目: 乙個數如果恰好等於它的因子之和,這個數被成為」完數」,例如:6=1+2+3.請程式設計找出1000以內的完數
#include
int main()
int i,j,sum;
for(i=4;i<1001;i++)
sum=0;
for(j=i-1;j>1;j–)
if(i%j==0)
sum=sum+j;
if(sum+1==i)
printf("\n");
printf("%d
",i);
return 0;
位運算基本內容與例題
201.數字範圍按位與 我們求 運算,最開始想到的暴力方法,將每個數字與運算過一遍 示例1 ans 5 6 7code int bit int m int n return result 注意result初始化為m,而不是0,想想為什麼?因為如果設定 result 0 0 i 0 0 任何東西都 0...
演算法 位運算
public static intpowern int m,int n return m public static void main string args public static boolean ispower int n return false num如何使2的n次冪,那麼num nu...
位運算的4個例題
例題1 尋找獨一無二的數 解答 利用位運算異或的性質 a a 0,a 0 a,a b c a b c a b c 資料規模100萬,不能用o n 2 應該用o n 演算法,邊讀取邊處理。例題2 為了未來的計算機 解答 方法 一 利用位運算且的性質 a 1 方法 二 利用位運算且的性質 a a 1 可...