题目描述
有一段C++代码如下:
i = a;
while (i != b)
i += c;
代码的语义是一个循环变量 i开始于 a,当且仅当它等于 b时退出循环,每次循环完成时 i 会增加 c。
规定所有变量在内存中都是用 k 位无符号二进制表示的,加法溢出后效果相当于取 2^k的模。请模拟这段程序,统计执行了多少次循环?
输入格式
四个整数:a,b,c 和 k。
输出格式
如果循环可以结束,输出循环次数;
否则输出 Inf。
k<=60 a,b,c< 2^k
样例:
3 3 2 16
输出: 0
样例:
3 7 2 16
输出: 2
样例:
7 3 2 16
输出: 32766
样例:
4 3 2 16
输出: Inf