[re] 공식좀 만들어줘~~

2004.05.23 23:45

단장 조회 수:1882 추천:275

위에 unknown분... 코드가 너무 어렵네요...-_-; 전 무슨소린지 전혀 모르겠음...
전 이렇게 해볼랍니다. 아마 장로는 PHP 에쓰겠지만...
    
bool DetermineStraight(int nNumber)
{
    char pBuffer[10]; // 자릿수의 최대값은 123456789 로서 문자열끝 NULL쳐도 10자리가 최대.
    itoa(nNumber, reinterpret_cast<char*>(pBuffer), 10) // nNumber로 받은 정수 숫자를 문자열로 변환. PHP는 자동이겠지만.

    int nCount = 0;
    char cStartChr = pBuffer[0]; //숫자의 첫글자를 캐릭터형태로 보관.
    while(pBuffer[nCount] != NULL) //문자열의 끝은 NULL로 끝나므로... 문자끝까지 스캔하는것.
    {
        if(cStartChr == (pBuffer[++nCount] - 1)) ++cStartChr; //cStartChr에는 문자열 첫글자
        // 들어 있으니깐... pBuffer[1] 즉 문자열의 두번째글자의 아스키코드에 1뺀거하고
        // cStartChr이 같으면 연속된숫자임... 단 이건 9 다음에 0이오는경우는 쓰지못함.
        // 그거 고려해야할거면 코드 수정 -_-;
        //어쨌든 다음글자가 조건에 맞으면 cStartChr을 1증가시킴(당연히 뒷글자를 위해서임.)
        else break;
    }

    if(strlen(pBuffer) == nCount) return true; //문자열 끝까지 스캔이 되었으면 true... 왜냐면
    //중간에 break가 한번도 안걸렸으니깐...
    else return false; // 문자열끝까지 스캔못하고 브레끼 걸렸을땐 false 리턴.
}

//2004.05.24 수정. 밑에건 수정된 풀 소스입니다... 라인수를 더 줄이려고 노력...
//만약 이 소스의 라인을 한줄씩 줄일수 있을때마다(공백지우기 인정안됨!)
//내가 밥 한끼씩 쏘겠음.

#include <iostream>

bool DetermineStraight(int nNumber)
{
    char pBuffer[10];
    itoa(nNumber, reinterpret_cast<char*>(pBuffer), 10);
    int n = 0;
    char cStartChr = pBuffer[0];
    while(pBuffer[++n] != NULL) if(++cStartChr != pBuffer[n]) return false;
    return true;
}

//For문을 사용하면 한줄 더 줄일수 있습니다만... 권장할방법은 못됩니다... Strlen을 For루프마다 호출하기 때문이죠.

int _tmain(int argc, _TCHAR* argv[])
{
        int nNumero = 12345578;

        if(DetermineStraight(nNumero)) std::cout << "스트레잇또!" << std::endl;
        else std::cout << "집에가라!" << std::endl;
        return 0;
}

댓글 6

파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
 
목록
번호 제목 글쓴이 날짜 조회 수
1683 기타연주? [6] AquaLIX 2004.11.23 1880
1682 엑박360 직원 할인가를 기대했던 분들에게 고함 [2] e-motion 2006.02.15 1881
1681 워크래..... [3] megaella 2003.09.05 1882
» [re] 공식좀 만들어줘~~ [6] [6] 단장 2004.05.23 1882
1679 아이북 질르다 [8] 안선생 2004.01.25 1887
1678 어제 사진입니다~ [2] sachiel 2005.01.16 1887
1677 茶母 이야기.. -_)a [1] file Evergreen 2003.09.20 1888
1676 이스6샀다..그런데.. [1] AquaLIX 2003.09.30 1888
1675 에어브러쉬,콤프레셔,스프레이부스 질름 -_-;; [5] saturnman 2005.12.31 1888
1674 복귀합니다 [3] 박민형 2003.07.25 1889
1673 미치겠다 ㅋㅋㅋㅋ.. [5] Evergreen 2005.07.19 1889
1672 즐거운 추석 되세요~ [3] 단장 2003.09.10 1890
1671 남자라면 킬빌을 보라. [12] 단장 2003.11.24 1890
1670 간만에 음악 하나 ㅇㅅㅇ~ [1] file Evergreen 2003.11.27 1890
1669 조선시대 성범죄 처벌법 [5] 단장 2006.04.01 1890
1668 안선생님 [3] e-motion 2004.02.11 1891
1667 신년회 안하나요? [4] 민형씨 2006.01.06 1891
1666 잘들 지내십니까? [9] saturnman 2006.08.08 1892
1665 소니가 시간도 알려주네 [2] [9] cafealpha 2004.05.04 1893
1664 공항에 비교한 운영체제 [2] [18] 단장 2004.06.08 1893