조세 프 문제 (원숭이 가 원숭이 왕 을 선택한다)

7378 단어 데이터 구조
c 언어 순환 링크 - 조세 프 문제 (원숭이 원숭이 선택 원숭이 왕)
n 마리 의 원숭이 가 시계 방향 으로 한 바퀴 돌 며 대왕 (번 호 는 1 부터 n 까지) 을 고 르 고 1 번 부터 번 호 를 매 기 며 m 까지 세 고 m 를 센 원숭이 는 권 밖으로 나 가 고 나머지 원숭이 는 1 부터 번 호 를 매 긴 다.이렇게 우리 안에 원숭이 한 마리 만 남 았 을 때 이 원숭이 가 원숭이 왕 이 었 다. n, m 를 입력 한 후에 마지막 원숭이 왕 의 번 호 를 출력 했다.입력: 입력 은 두 개의 정 수 를 포함 하고, 첫 번 째 는 n 이 며, 두 번 째 는 m (0 < m, n < = 300) 입 니 다. 출력 은 한 줄, 즉 마지막 원숭이 왕 의 번 호 를 포함 합 니 다.
#include
#include
#define N 20

typedef int element;
typedef struct linkList{
element data;
int length,size;
struct linkList *next;
}linkList;

int main(){
	struct linkList *p,*pr=NULL,*head;
	int n,m,i,j;
	scanf("%d%d",&n,&m);
	head=(struct linkList*)malloc(sizeof(struct linkList)*N);
	pr=head;
	
	
	//        
	for(i=0;i<n;i++){
		p=(struct linkList*)malloc(sizeof(struct linkList));
		p->data=i+1;//          
		p->next=head;//              ,       
		pr->next=p;//pr    p 
		pr=p; 
	}

	pr->next=head->next; 
	p=pr;
	free(head);
	
	for(i=0;i<n-1;i++){//      ,  
		for(j=0;j<m-1;j++){//            ,         
			p=p->next;
		}
		p->next=p->next->next;
	} 
	
	printf("%d",p->data);
	return 0;
}

좋은 웹페이지 즐겨찾기