不得不說紫書代碼極其優秀,雖然這個題自己錯了好幾次最后是做出來了.但是很明顯的對比代碼思路條理不如紫書
紫書代碼強無敵.
#include<stdio.h>
#define maxn 25
int n,k,m,a[maxn];
int go(int p,int d,int t){
while(t--){
do{
p=(p+d+n-1)%n+1; //此步為這個蓋什么圈的核心步驟 屬實強此處n不能省略因為d也有可能為負數(反著數)
}while(a[p]==0);
}
return p;
}
int main(){
while(scanf("%d%d%d",&n,&k,&m)==3&&n){
for(int i=1;i<=n;i++){
a[i]=i;
}
int left=n;
int p1=n,p2=1;
while(left){//有人留存
p1=go(p1,1,k);
p2=go(p2,-1,m);//數完一個再數一個
printf("%3d",p1);
left--;
if(p2!=p1){
printf("%3d",p2);
left--;
}
a[p1]=a[p2]=0;
if(left)printf(",");
}
printf("\n");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/19140.html
標籤:基礎類
上一篇:紫書第四章 函式與遞回
