UVa 1394 - And Then There Was One(约瑟夫数论)

来源:互联网 发布:淘宝申请介入会退款吗 编辑:程序博客网 时间:2024/06/05 22:36

数论问题,n个人围成环,每点m个就删掉点到的那个,问最后剩下人的编号。
递推公式为f[i]=(f[i1]+m)

#include<cstdio>const int maxn=10010;int f[maxn];int main(){    int n,m;    while(~scanf("%d%d",&n,&m)&&n){        f[1]=0;        for(int i=2;i<=n;++i) f[i]=(f[i-1]+m)%i;        int ans=(1+f[n])%n;        if(ans<=0) ans+=n;        printf("%d\n",ans);    }    return 0;}
0 0
原创粉丝点击