http://poj.org/problem?id=2115
题意:对于C的循环(for i = A; i != B; i+=C)问在k位存储系统内循环多少次结束;
若循环有限次能结束输出次数,否则输出 FOREVER;
解:设x为循环次数;
(A+C*x)%2^k = B;
则 C*x+A = 2^k*y+B;
所以 C*x - 2^k*y = B-A; 类似于a*x+b*y = c (或 a*x = c(mod b))模线性方程的形式,根据扩展欧几里得算法解决,模板题。
#include
#include
#include
#include
#include