#include <iostream> using namespace std; int main(){ int n, k, m; cin >> n >> k >> m; int a[n+1], i; for(i = 1; i <= n; i++){ a[i] = 1; } int j = 0, cnt = 0; while(cnt <= n){ if(k > n) k %= n; if(a[k] == 1){ j++; if(j == m){ if(cnt == n-1){ cout << k << endl; break; } a[k] = 0; j = 0; cnt++; } } k++; } return 0; }
第一次做的时候看错题意,以为是1-n,下面是改进,从0到n-1
#include <iostream> using namespace std; int main(){ int n, k, m; cin >> n >> k >> m; int a[n], i; for(i = 0; i < n; i++){ a[i] = 1; } int j = 0, cnt = 0; while(cnt <= n){ if(k >= n) k %= n; if(a[k] == 1){ j++; if(j == m){ if(cnt == n-1){ cout << k << endl; break; } a[k] = 0; j = 0; cnt++; } } k++; } return 0; }
全部评论
(1) 回帖