int溢出导致死循环/ll取模时间超时

溢出详细解释
例题

		int tmp=1;
		while (n>=tmp) {
			int num = n - tmp;
			if (num % b == 0) {
				cout << "Yes" << endl;
				break;
			}
			tmp *= a;
		}

768093662 48 46 错误数据,
由于n比较大,tmp在最后一次乘以a时会超过int范围,变成负数,进而陷入死循环。这个和详细解释里示例一中变量len的溢出类似。
开ll就可以解决这个问题,并成功ac。

例题
ll取模运算用时比int用时长,有时会卡,需注意。

无脑ll就完了。

原文地址:https://www.cnblogs.com/lingshi321/p/14968085.html