做完这道题让我深刻理解了log的使用,尽管我没有用它来写,把边长除以二再除以二一直除到一为止,就相当于log(2 底 边长).
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int t;
__int64 a,b,c,hand,knife,v;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
hand=0;knife=0;
scanf("%I64d%I64d%I64d",&a,&b,&c);
v=a*b*c;
hand=v-1;
while(a!=1)
{
a=(__int64)ceil(a/2.0);
knife++;
}
while(b!=1)
{
b=(__int64)ceil(b/2.0);
knife++;
}
while(c!=1)
{
c=(__int64)ceil(c/2.0);
knife++;
}
printf("Case #%d: %I64d %I64d\n",i,hand,knife);
}
}