DS题目汇编
一、
二、表2-8洗盘子
代码
#include <stdio.h>
# define MAXSIZE 50005
int pigs[MAXSIZE];
int lucky_pigs[3005];
void find_luck(){int n=0;for(int i=2;i<MAXSIZE;i++) pigs[n++]=i;int cnt=0;while(cnt<=3000){int head=pigs[0];lucky_pigs[cnt++]=head;int newn=0;int pos=0;for(int i=1;i<n;i++){pos++;//删除位置满足pos % head == 0。if(pos%head!=0){pigs[newn++]=pigs[i];//把没被删除的元素往前挪 }}n=newn;}
}
int main(){int t,x;find_luck();scanf("%d",&t);while(t--){scanf("%d",&x);printf("%d\n",lucky_pigs[x-1]);}return 0;
}