U E D R , A S I H C RSS

중위수구하기/정수민

No older revisions available

No older revisions available



소감

이렇게하면 재미있겠다 ... 싶어서 꼽살껴서 한번 말들어봤음.
알고리즘은 사람이라면 어떻게 판단 할까 라는 생각을 주로해서 만들었다.

상당히... 난해하다 -_-;;;;

사람의 사고와 비슷하다고 말할수없을 정도로 딱딱하지만 중간값에서 가장 가까운 값을 찾는 점에서 이 알고리즘을 선택했다.

그리고 코드가 '배껴진' 허아영양에게 심심한 사과의 말씀을...;; 쿨럭;;;

코드

아영아 미안 =ㅅ=;;

ver.1 코드가 길다. 없어도 상관없는 부분이 있다.

~cpp 
#include <stdio.h>

int search_middleNum(int *, int *, int *);

void main()
{
	int a, b, c, middleNum;
	while(1){
		printf("멈추려면 '-999 0 0' 입력\n");
		printf("비교할 A, B, C 값을 차례로 입력 : ");
		scanf("%d %d %d", &a, &b, &c);
		if(a == -999){
			break;
		}
		middleNum = search_middleNum(&a, &b, &c);
		printf("중위수 = %d", middleNum);
	}
}

int search_middleNum(int *a, int *b, int *c)
{
	int middleNum_1, middleNum_2, i_1=0, i_2=0;

	middleNum_1=middleNum_2=(*a+*b+*c)/3;

	while (1){
		middleNum_1++;
		i_1++;
		if (middleNum_1==*a||middleNum_1==*b||middleNum_1==*c) break;
	}

	while (1){
		middleNum_2--;
		i_2++;
		if (middleNum_2==*a||middleNum_2==*b||middleNum_2==*c) break;
	}

	if (i_1<i_2) return middleNum_1;
	else return middleNum_2;
}

ver.2 일단 어느정도 수정...

~cpp 
#include <stdio.h>

int search_middleNum(int *, int *, int *);

void main()
{
	int a, b, c, middleNum;
	while(1){
		printf("멈추려면 '-999 0 0' 입력\n");
		printf("비교할 A, B, C 값을 차례로 입력 : ");
		scanf("%d %d %d", &a, &b, &c);
		if(a == -999){
			break;
		}
		middleNum = search_middleNum(&a, &b, &c);
		printf("중위수 = %d", middleNum);
	}
}

int search_middleNum(int *a, int *b, int *c)
{
	int middleNum_1, middleNum_2;

	middleNum_1=middleNum_2=(*a+*b+*c)/3;

	while (1){
		if (middleNum_1==*a||middleNum_1==*b||middleNum_1==*c) return middleNum_1;
		if (middleNum_2==*a||middleNum_2==*b||middleNum_2==*c) return middleNum_2;
		middleNum_1++;
		middleNum_2--;
	}
}

변수 테이블

변수 이동과정은 이렇다...
사람이라면 세가지 수를 한꺼번에 입력받아 그 중간값을 찾아낼수있다. 어떻게 그럴 수 있을까를 곰곰히 실행해보다가 세수를 동시에 입력받는것을 선택했다.

과정 a b c middleNum_1 middleNum_2 middleNum
middleNum_1=middleNum_2=(*a+*b+*c)/3 45 14 38 32 32 ?
middleNum_1++; middleNum_2--; 45 14 38 38 26 ?
return middleNum_1; 45 14 38 38 26 38

중간수 와 같은수인 middleNum를 출력한다.

나한테 할 말

올.. +_+ 괜찮아ㅎ 내 코드 값.. 줘~ ㅋㅋ, 너도 LittleAOI 참여해 계속, --아영
로열티를 지불해야하는건가 =ㅅ=;; ㅎㅎ 계속할지 안할지 몰라서 =0=;;; 하도록 노력해 보마 =_=!!ㅋ

다시 보니까 , 새로운 알고리즘이다+_+ 굿굿..~! ~! --아영
꿈이 인공지능연구니까 이상한쪽으로 많이 생각이나더라고 ㅎㅎ 능률은 상당히 저조하지만 그런대로 만족하는 소스라는 ㅋ
인공지능 !! 나나.. 쵸비츠만들어주...ㅠ.ㅜ ㅋ 인공지능이면 나처럼 마인파인더라던지.. 문제푸는 알고리즘을 많이 만들어보는게 어때?ㅎ 그리고 꼭 쵸비츠 만들어줘야해~!!! - 조현태

마인파인더같은건 내실력이 너정도 돼면 만들어보마 ㅋㅋ 지금은 인공지능 위치만 구상하고있어 ㅎㅎ 어떻게 해야 어떤행동을 할까 하고 ; 생각보다 기능이 많아야 하더군 ;;;


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:09
Processing time 0.0480 sec