69,394
社区成员
发帖
与我相关
我的任务
分享
/**
* @file IntegralPowerOfFour.c
* @author Jain <Jain_Y@126.com>
* @date Tue Nov 01 16:19:31 2011
*
* @brief This is detect whether a integer is an integral power of four.
*
*
*/
#include <stdio.h>
#include <stdbool.h>
bool isPowerOfFour();
int main(int argc, char *argv[])
{
long number = 0;
printf("Please input a integer: ");
scanf("%ld", &number);
if (isPowerOfFour(number))
{
printf ("%ld is an integral power of 4.\n", number);
}
else
{
printf ("%ld is not an integral power of 4.\n", number);
}
return 0;
}
bool isPowerOfFour(long number)
{
long quotient = number;
short remainder = -1;
while(true)
{
remainder = quotient%4;
quotient /= 4;
if (quotient < 4)
{
break;
}
}
if (1 == quotient && 0 == remainder)
{
return true;
}
return false;
}