서로 다른 주사위 x개를 던져 합을 구하는 프로그램

인공지능 알고리즘을 짜기 위해 경우의 수를 공부하던 중 이런 문제가 있었다.

'서로 다른 주사위 3개를 던져 합이 10인 경우의 수를 구하여라.'

문제를 푸는것은 어렵지 않았지만 문득 궁금증이 생겼다.

주사위 수가 네개, 다섯개, 여섯개로 늘어나면 경우의 수는 어떻게 될까?

먼저 주사위 3개를 던져 합의 경우의 수를 구하는 프로그램이다

(일부환경에서는 Syntax Highlighter가 보이지 않습니다.ex) 모바일...)

주사위세개.txt

출력결과 :

이 소스에서 CntOfDice의 숫자를 바꾸고 반복문을 추가하면 네개, 다섯개도 가뿐하다. 소스가 워낙 간단하다 보니 딱히 설명은 필요 없을 것 같다.

(일부환경에서는 Syntax Highlighter가 보이지 않습니다.ex) 모바일...)

출력결과 :

내린 결론은 하나다. 이런 문제 안나온다.

by Conscientia 2013.01.02 14:43

글의 권한은 정등어에게있으며
 무단배포 및 불펌을 금하며 글을 퍼가고 싶으시면 링크만~
부탁드려요 꾸벅
진짜 불펌하지말아요 ㅠㅠ저 웁니다

 




#include <iostream>
using namespace std;

void main(){
 while(1){
  int result[100]={0};   //소인수분해의 결과값 저장 배열
  int N=0;    //소인수분해 할 정수
  int K=2;    //N을 나누어보는 수
  int C=0;    //소인수 계산처리를 위한 변수
  int Y=1;    //소인수 분해한 결과를 출력을 위한 변수

  cout<<"소인수분해 하려는 값을 입력해 주세요(0 to quit) : ";   cin>>N;

  if(N > 1){ //1보다 크다면(1은 소수가 아니다) 소인수분해,아니라면 다시입력

   while(N!=1){
    if(N%K==0){ //나머지가 0이라면 N은 소인수,아니라면 K+1      ++C;      result[C-1]=K;      N=N/K;     }else{
     ++K;     }    }

   //출력 구문    for(int i=0;i<C;i++){     while(result[i]==result[i+1]){      i++;      Y++;     }
    cout<<result[i]<<"^"<<Y;
    Y=1;

    if(i<C-1){
     cout<<" * ";
    }
   }
   //출력 끝

  }else if(N==0){//0을 입력하면 종료
   break;
  }else{
   cout<<"2 이상의 정수를 입력해 주세요"<<endl;
   continue;
  }
  cout<<endl;
 }
}

by Conscientia 2011.07.25 14:25
아래의 사진출처는 www.winapi.co.kr 입니다

이 함수는 c++의 소멸자와 매우 비슷한 기능을 하는 함수라고 볼수있다.

소멸자가 무었인지 궁금한가? 그럼 펼쳐보시길.

더보기

소멸자에 대해서 자세히 알고 싶으면 c++을 공부하면 좋을 듯 싶다

일단 소멸자 얘기는 접어두고


이부분만 잘알면 쓰는데는 큰무리가 없을것이라 생각한다


 메인함수의 끝으로 넣어두는 함수
(예를들면 프로그램을 종료하겠습니다.)
이런것을 atexit함수로 넣어놓으면 메인함수를 볼때 좀더 깔끔하지 않을까 하고 생각한다,

그외의 용도로는 따로 생각할 만한것이 없다..

아래는 그냥한번 atexit 함수를 사용해 보았다.


                                함수의 실행결과::


                               함수의 종료 전에 atexit함수가 실행되었다


이것으로 끝.
by Conscientia 2011.02.22 18:16

아래의 사진출처는 www.winapi.co.kr 이다
솔직히 이분께서 너무 정리를 잘해놓으셔서 딱히 다른설명은 필요 없을것 같다

그냥 한가지 팁을 주자면 이것을 이용해서 파일이 있으면 실행하고 없으면 만들고 실행하는 그런프로그램도 괜찮을것 같다

어쨋거나 여러모로 유용하세 쓸 수 있을것 같은 함수이다.

끝으로 정말 좋은 사이트인 www.winapi.co.kr 의 운영자님께 진심으로 감사드린다
by Conscientia 2011.02.15 14:16

정수의 절대값을 리턴하는 함수이다 

아래의 사진은 www.winapi.co.kr 출처
매크로 함수가 실행속도상 더 유리하다지만 코딱지 만큼밖에 차이 안난다.
그냥 원하는거 쓰도록..


by Conscientia 2011.02.15 13:50
사진출처 : www.winapi.co.kr
 
예제

//헤더로는 stdlib.h s나 process.h 를 쓴다.
#include <stdlib.h> //abort 함수를 쓰기위한 헤더 선언
#include <iostream>
#include <conio.h>
using std::cout;  //cout 함수를 편하게 쓰기 위한 방법.
using std::endl;  //cout 함수를 편하게 쓰기 위한 방법.
// 위에처럼 쓰지말고 using namespace std; 를 쓰면 더욱 쉽게 쓸 수 있다.

void main () {
 cout << "abort 함수를 실행시키도록 하겠습니다."<< endl;
 cout << "아무키나 누르면 비정상적인 종료인 abort함수를 실행시키게 됩니다"<<endl;
 getch();
 abort(); //이것이 abort함수
}

//abort 함수에 대한 자세한 설명을 보려면 www.winapi.co.kr 에서 레퍼런스를 참조할것
// 또한 이 함수는 정상적인 종료가 아닌 비정상적인 종료를 알려드리는 바이다. 



실행하면 이렇게 된다
디버그모드의 함수모드 결과
요건 릴리즈 모드.


딱히 쓸데는 없을것 같다.
by Conscientia 2011.02.15 13:22
| 1 |