#7113. 无尽的循环

无尽的循环

题目描述

有一段C++代码如下:

i = a;
while (i != b) 
  i += c;

代码的语义是一个循环变量 ii 开始于 aa,当且仅当它等于 bb 时退出循环,每次循环完成时 ii 会增加 cc

规定所有变量在内存中都是用 kk 位无符号二进制表示的,加法溢出后效果相当于取 2k2^k 的模。请模拟这段程序,统计执行了多少次循环?

输入格式

四个整数:aabbcckk

输出格式

  • 如果循环可以结束,输出循环次数;
  • 否则输出 Inf
3 3 2 16
0

样例解释 1

初值和目标相等,没有进入循环体

3 7 2 16
2
7 3 2 16
32766
4 3 2 16
Inf

数据范围

  • 对于 30%30\% 的分数,1k101 \leq k \leq 10
  • 对于 60%60\% 的分数,1k301 \leq k \leq 30
  • 对于 100%100\% 的分数,1k601 \leq k \leq 60
  • 0a,b,c<2k0\leq a, b, c < 2^k