350
还是小水题一道,只需注意一点,题中要求求的是那个循环中的数的个数,有时候一开始的几个数并不在循环中,是后来不断变化才进去的,用点小技巧即可
//============================================================================
// Name : 350.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int T, Z, I, M, L, ans, t;
int flag[100010];
int main() {
freopen("a.txt", "r", stdin);
T = 0;
while(scanf("%d%d%d%d", &Z, &I, &M, &L)&&(Z||I||M||L)){
T++;
memset(flag, 0, sizeof(flag));
t = 1;
flag[L] = 1;
L = (Z*L+I)%M;
while(flag[L] == 0){
t++;
flag[L] = t;
L = (Z*L+I)%M;
}
ans = t-flag[L]+1;
printf("Case %d: %d\n", T, ans);
}
return 0;
}

浙公网安备 33010602011771号