1 条题解
-
0
C :
#include<stdio.h> int main() { int m,n,a[16],i,j,k,q,p,chu; scanf ("%d%d",&m,&n); for (i = 1;i <= m;i++) a[i] = i; k = 0; p = m; chu = n; for (j = 0;j < m;j++) { if (n > p&&n%p !=0) chu = n%p; else if(n > p&&n%p ==0) chu = p; else chu = n; for (i = k+1;;i++) { if (i > m) i = 1; if (a[i] == 0) continue; if (a[i]%chu == 0) { printf ("%d\n",i); if (p != 1) a[i] = 0; break; } } for (k = i+1,q = 1;;k++) { if (k > m) k = 1; if (k+1 == i+1&&q != 1) break; if (a[k] == 0) continue; a[k] = q; q++; } p--; } return 0; }
C++ :
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<set> #include<map> #include<vector> #define LL long long #define ULL unsigned long long #define DB double #define FO(i,n) for(LL i=0;i<n;i++) #define FOD(i,n) for(LL i=n-(LL)1;i>=0;i--) #define FOR(i,a,b,c) for(LL i=a;i<=b;i+=c) #define FORD(i,a,b,c) for(LL i=a;i>=b;i-=c) #define MS(a,b) memset(a,b,sizeof(a)) using namespace std; bool vis[20]; int main() { #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif // ONLINE_JUDGE int n,m; scanf("%d%d",&n,&m); MS(vis,0); int wz=0; FO(i,n) { int ans; int cs=m; int xx=0; while(1) { if(wz==n) wz=0; if(!vis[wz]) xx++; if(xx==cs) {ans=wz+1;xx=0;vis[wz]=true;break;} wz++; } printf("%d\n",ans); } return 0; }
Pascal :
program t1051; var m,n,i,j,s:integer; a:array[0..15] of integer; begin readln(m,n); fillchar(a,length(a),0); //fillchar(a,m,1); //for i:=1 to 15 do a[i]:=0; for i:=1 to m do a[i]:=1; {初始准备} j:=0; for i:=1 to m do {输出m个出圈人编号} begin s:=0; {计数清0} while s<n do {计数为n时结束} begin if j<m then j:=j+1 else j:=1; {处理下标} s:=s+a[j]; {计数} end; writeln(j); {输出出圈人编号} a[j]:=0; {该元素清0} end; end.
Python :
# coding=utf-8 n,m=map(int,input().split()) l=[] for i in range(n): l.append(i+1) c=0 j=0 while l: c+=1 if c==m: print(l.pop(j)) j-=1 c=0 if l: j=(j+1)%len(l)
- 1
信息
- ID
- 379
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者