51nod 1073 约瑟夫环
生活随笔
收集整理的這篇文章主要介紹了
51nod 1073 约瑟夫环
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
N個(gè)人坐成一個(gè)圓環(huán)(編號(hào)為1 - N),從第1個(gè)人開始報(bào)數(shù),數(shù)到K的人出列,后面的人重新從1開始報(bào)數(shù)。問最后剩下的人的編號(hào)。 例如:N = 3,K = 2。2號(hào)先出列,然后是1號(hào),最后剩下的是3號(hào)。 ?收起
約瑟夫環(huán)模板,遞推。
代碼: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define MAX 50000 #define DMAX 10000 using namespace std; typedef long long ll; int n,k,ans = 1; int main() {scanf("%d%d",&n,&k);for(int i = 2;i <= n;i ++) {ans = (ans + k) % i;///ans = (ans + k % i) % i }printf("%d",ans + 1); }
輸入
2個(gè)數(shù)N和K,表示N個(gè)人,數(shù)到K出列。(2 <= N, K <= 10^6)輸出
最后剩下的人的編號(hào)輸入樣例
3 2輸出樣例
3約瑟夫環(huán)模板,遞推。
代碼: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define MAX 50000 #define DMAX 10000 using namespace std; typedef long long ll; int n,k,ans = 1; int main() {scanf("%d%d",&n,&k);for(int i = 2;i <= n;i ++) {ans = (ans + k) % i;///ans = (ans + k % i) % i }printf("%d",ans + 1); }
?
轉(zhuǎn)載于:https://www.cnblogs.com/8023spz/p/10053060.html
總結(jié)
以上是生活随笔為你收集整理的51nod 1073 约瑟夫环的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac os硬盘空间释放
- 下一篇: ansible基础-playbooks