126.c
来自「平时acm训练时ac的源代码」· C语言 代码 · 共 66 行
C
66 行
/*
126. Boxes
Accepted 56 ms 114 kb
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
long A, B, C, *S, qA, qB;
int i;
scanf("%ld %ld", &A, &B);
if (0==A || 0==B)
{
printf("0");
}
else if (A==B)
{
printf("1");
}
else
{
if (A>B)
{
C=B;
B=A;
A=C;
}
qA = A;
qB = B;
for (C=qB%qA; 0!=C; C=qB%qA)
{
qB=qA;
qA=C;
}
C=(B+A)/qA;
do
{
S = (long *)malloc(sizeof(long) * 31);
}while(!S);
S[0] = 1;
for (i=1; i<31; i++)
{
S[i] = 2*S[i-1];
}
for (i=0; i<31; i++)
{
if (C==S[i])
{
A=-1;
break;
}
}
if (-1==A)
{
printf("%d", i);
}
else
{
printf("-1");
}
free(S);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?