1 条题解
-
0
C :
#include <stdio.h> int p(int n, int m) { if (n == 1) return 1; else return (p(n - 1, m) + m - 1) % n + 1; } int main() { int n, m; scanf("%d %d", &n, &m); int i = p(n, m); printf("%d", i); return 0; }C++ :
#include<bits/stdc++.h> using namespace std; #define int long long #define endl '\n'; int a[1010]; void solve() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) a[i]=1; int ans=0; int p=0; while(ans!=n-1) { int he=0; while(he<m) { p++; if(p>n) p=1; he+=a[p]; } a[p]=0; ans++;//删除的数量 } for(int i=1;i<=n;i++) { if(a[i]==1) cout<<i<<endl; } } signed main() { // freopen("F:\\DataTest\\猴子拉手手\\4.in","r",stdin); // freopen("F:\\DataTest\\猴子拉手手\\4.out","w",stdout); ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int T=1; // cin>>T; while(T--) solve(); return 0; }Java :
import java.util.Scanner; public class Main { public static void main(String[]args){ Scanner input = new Scanner(System.in); int m=input.nextInt(); int n=input.nextInt(); int A[]=new int [m]; int g=m; int j=0; int i=0; while (g>1){ if(A[j%m]==0){ i++; if(i==n){ A[j%m]=1; g--; i=0; } } j++; } for(int k=0;k<m;k++){ if(A[k]==0)System.out.println(k+1); } } }
- 1
信息
- ID
- 685
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 提交数
- 3
- 已通过
- 1
- 上传者