地址:http://acm.hit.edu.cn/judge/show.php?Proid=1006&Contestid=0
思路:最簡單的方法就是用visted[60]來存儲分針數是否重復過,如果重復了說明后面的結果在不斷循環而不會到達0。然而更快捷的方法是利用60的因子分解,60=2*2*3*5,每次time = ((d + 1) * time) % 60,如果可以,那么最多2次就可以到達0,否則永遠到達不了。
代碼如下:
#include <stdio.h>

int main()


{
int d, tmp;
int num;

while(scanf("%d%d", &tmp, &d) == 2 && (tmp || d))

{
if(tmp == 0)

{
printf("0\n");
continue;
}
if(d == 0)

{
printf("Impossible\n");
continue;
}

for(num = 1; num <= 2; num++)

{
tmp = ((d + 1) * tmp) % 60;
if(tmp == 0)
break;
}

if(tmp == 0)
printf("%d\n", num);
else
printf("Impossible\n");
}

return 0;
}
思路:最簡單的方法就是用visted[60]來存儲分針數是否重復過,如果重復了說明后面的結果在不斷循環而不會到達0。然而更快捷的方法是利用60的因子分解,60=2*2*3*5,每次time = ((d + 1) * time) % 60,如果可以,那么最多2次就可以到達0,否則永遠到達不了。
代碼如下:












































