백단 이 새로운 것 을 받아들이다.

1902 단어 알고리즘
[제목 설명]
가장 기대 되 는 것 은 매년 백 단 이 새로운 것 을 내 놓 는 것 이다. 왜 일 까? 당연히 독신 조직 을 찾 는 것 이다.동아리
여러 가지 미팅 이 있 는데 한 무리의 사람들 이 둘 러 앉 아서 계속 눈빛 을 주 고 받 을 수 는 없 잖 아 요. 돌아 가면 서 방송 을 나 가세 요.만약 당신 이 첫 번 째 라 고 가정한다 면, 당신 은 숫자 num 을 제시 하고, 당신 부터 숫자 1 을 입력 하 세 요. 당신 의 오른손 방향 은 숫자 2 를 입력 하 세 요. 이 를 통 해 숫자 가 num 인 공연 프로그램 까지 유추 할 수 있 습 니 다.공연 이 끝나 면 연기자 의 다음 부터 계속 1 부터 번 호 를 매기 고 이미 번 호 를 제시 한 사람 은 더 이상 보고 하지 않 아 도 된다. 마지막 에 프로그램 이 나 오지 않 은 사람 만 남 을 때 까지 당연히 마지막 에 프로그램 이 나 오지 않 아 도 된다.IT 남 신 으로서 라 이브 공연 으로 코드 를 칠 수 는 없 잖 아 요. 유일한 방법 은 모든 num 의 번 호 를 피 하 는 데 성공 하 는 거 예요.입력: 첫 번 째 줄 에 정수 N, N < 100 을 입력 하 십시오.
다음은 N - 1 줄 이 있 습 니 다. 퍼 포 먼 스 순서대로 퍼 포 먼 스 의 이름 을 출력 합 니 다.
샘플 입력: 5 Mike Jake Marry KangKang June 샘플 출력: 4 KangKang Marry June
Jake
[문제 풀이 아이디어!]
num 의 값 은 2 에서 n 으로 점점 증가 합 니 다. 나머지 마지막 사람 은 자신 입 니 다. 이때 순환 에서 벗 어 나 얻 은 num 값 은 문제 의 뜻 을 만족 시 키 는 가장 작은 num 값 입 니 다!
[코드]
#include<stdio.h>
#include<string.h>

int main()
{
	int n;
	int i;
	char a[100][10];
	char b[100][10];
	char d[100][10];
	char me[2][10];
	scanf("%d",&n);
	int m=n;
	for(i=1;i<=n;i++)
	{
		scanf("%s",a[i]);
		strcpy(d[i],a[i]);
	}
	strcpy(me[1],a[1]);
	for(int num=2;;num++){
		int temp=num;
		char c[100][10];
		int signC=1;
		int sign=1;
		n=m;
		int s=num;
		while(n!=1)
		{
			if(temp%n!=0)
				num=temp%n;
			else num=n;
			if(strcmp(me[1],a[num])==0){sign=0;break;}
			strcpy(c[signC],a[num]);
			signC++;
			int s=1;
			for(int j=num+1;j<=n;j++){
				strcpy(b[s],a[j]);
				s++;
			}
			for(int m=1;m<num;m++){
				strcpy(b[s],a[m]);
				s++;
			}
			
			for(int k=1;k<s;k++){
				strcpy(a[k],b[k]);
			}
			n--;
		}
		num=s;
		if(sign)
		{
			printf("%d
",temp); for(i=1;i<m;i++) { printf("%s
",c[i]); } break; } for(i=1;i<=m;i++) { strcpy(a[i],d[i]); } } }

좋은 웹페이지 즐겨찾기