1.第二次遇到大数字。发现到了2^63次方,就爆了。干脆就直接举出2^62次方,大于它就直接等于它,果然ac。
#include <stdio.h>
#define MAX 64
int main()
{
__int64 floor;
int b;
__int64 c;
while (~scanf("%I64d", &floor))
{
if (floor >= 4611686018427387904)
{
c = 4611686018427387904;
}
else
{
c=1;
for (b = 0; b < MAX + 2; b++)
{
if (c > floor)
{
c/=2;
break;
}
else if (c == floor)
{
break;
}
c*=2;
}
}
printf("%I64d\n", c);
}
return 0;
}