输入:二进制数;数据类型为整型
输出:
若偶数,输出“EVEN”
若奇数,输出“ODD”
看代码
#include<stdio.h>
#include<math.h>
int main()
{
int k,num2,num3;
float num1;
float t = 2;
scanf("%d",&num2);//读取二进制数
num3 = num2;//将二进制数备份
int n = 0;
while (num2 != 0)
{
num2 = num2 / 10;
n++; //n获得并存储二进制数位数
}
printf("%d\n%d\n", n, num3);
int a[20] = { 0 }; //通过数组对二进制数的每一个数进行相应的位权转换
k = n;
n--;
for (n; n>=0;n--)
{
a[n] = num3 % 10;
num3 = num3 / 10;
}//迭代获得二进制数的最后一位并存入数组
int j = k;
int sum = 0;
for (n=0; n<=k; n++)
{
j = j - 1;
num1 = pow(t, j);
sum = sum + num1*a[n];//将相应的数乘以相应的位权以得十进制数
}
printf("\n%d", sum);
if (sum % 2 == 0)//判断奇偶
{
printf("\nEVEN");
}
else
{
printf("\nODD");
}
return 0;
}