做了三个简单的题目

来源:互联网 发布:淘宝组装电脑都在武汉 编辑:程序博客网 时间:2024/06/04 08:45
//#include <stdio.h>
//int is_su(int num)
//{
// int j = 1;
// for(j =2; j<num; j++)
// {
// if(num%j == 0)
// return 0;
// }
// return 1;
//}
//int main()
//{
// int i = 0;
// int ret;
// for(i = 1; i<100;i++)
// {
// ret = is_su(i);
// if(ret == 1)
// printf("%d is su\n",i);
// }
// return 0;
//}
//1.编程实现:
//两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
//输入例子:
//1999 2299
//输出例子:
//7
//#include <stdio.h>
//int main ()
//{
// int  i = 0;
// int  j = 0;
// unsigned int m,n;
// int count = 0;
// scanf("%d%d",&m,&n);
// for(i = 0; i<32; i++)
// {
// if(m^1 == n^1)//0011
// {             //0101
// count++;
// }
// m = m>>1;
// n = n>>1;
// }
// printf("%d\n",32-count);
// return 0;
//}
//2.编写函数:
//unsigned int  reverse_bit(unsigned int value);
//这个函数的返回 值value的二进制位模式从左到右翻转后的值。
//
//如:
//在32位机器上25这个值包含下列各位:
//00000000000000000000000000011001
//翻转后:(2550136832)
//10011000000000000000000000000000
//程序结果返回:
//          2550136832
//#include <stdio.h>
//void  reverse_bit(unsigned int value)
//{
// unsigned int num = value;
// int i = 0;
// int arr[32];
// for(i = 0; i<32; i++)
// {
// arr[i] = num%2;
// num>>=1;
// }
// for(i = 0;i<32; i++)
// {
// printf("%d",arr[i]);
// }
//
//}
//int main ()
//{
// int i = 0;
// unsigned int input;
// scanf("%d",&input);
// reverse_bit(input);
// return 0;
//}

//#include<stdio.h>
//int main ()
//{
// int a,b;
//  int  average;
// scanf("%d%d",&a,&b);
// average = (a & b) + (a ^ b) >>1;
// printf("%d\n",average);
// return 0;
//}
//.一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字(使用位运算)
#include <stdio.h>
int main ()
{
int i = 0;
int sum = 0;
int arr[9] = {1,1,2,2,3,3,5,5,77};
for(i = 0; i<9; i++)
{
sum ^= arr[i];
}
printf("%d\n",sum);
return 0;
}

0 0
原创粉丝点击