[고전 알고리즘]: 동전 무게 측정 문제 및 프로 그래 밍 실현

그래, 나 는 내 가 룸메이트 에 게 속 았 다 는 것 을 인정한다. 갑자기 침실 에서 이 문 제 를 토론 하기 시작 했다. 저녁 9 시가 넘 어서 지금까지 계속 해서 야 + + 를 끝 냈 다.철저 하 지 는 않 지만 대부분의 문 제 를 해결 했다.
문제.
1, 4 동전 무게 측정 문제 2, 8 동전 무게 측정 문제 3, 12 동전 무게 측정 문제
전송 문: 문제 풀이
12. 동전 문제 및 풀이: 12 개의 동전 은 무 게 를 모 르 는데 어떻게 세 번 으로 달 수 있 습 니까?해법: (오래 보아 야 알 수 있다) 전송 문:
해법 전송 문
코드 구현: (모두 모 였 습 니 다) 8 개의 동전 은 쓰 지 않 았 습 니 다. 4 개의 동전 과 차이 가 많 지 않 기 때문에 몇 개의 프로그램 을 주의 하 세 요. 저 는 분리 되 어 있 습 니 다.
//        
//      ,               
// author:seen
// time:2015-09-20
//              


//4        
#include <iostream>
using namespace std;
void main(){
    int num[5]={0,1,3,1,1};
    if(num[1]+num[2]>num[3]+num[4]){
        if(num[3]>num[4]){
            cout<<num[4];   
        }
        else if(num[3]<num[4])cout<<num[3];
        else{
            if(num[1]>num[2]) cout<<num[1];
            else cout<<num[2];
        }
    }
    else{
        if(num[1]>num[2]){
            cout<<num[2];   
        }
        else if(num[1]<num[2])cout<<num[1];
        else{
            if(num[3]>num[4]) cout<<num[3];
            else cout<<num[4];
        }
    }
}


//12       ,     

#include <iostream>
using namespace std;
void main(){
    int num[13] ={0,8,1,1,1,1,1,1,1,1,1,1,1};
    if(num[1]+num[2]+num[3]+num[4]+num[5]==num[6]+num[7]+num[8]+num[9]+num[10]){
        if(num[11]>num[12]){
            cout<<num[11];
        }
        else cout<<num[12];
    }
    else if(num[1]+num[2]+num[3]+num[4]+num[5]<num[6]+num[7]+num[8]+num[9]+num[10]){
        if(num[6]+num[7]>num[8]+num[9]){
            if(num[6]>num[7]) cout<<num[6];
            else cout<<num[7];
        }
        else if(num[6]+num[7]==num[8]+num[9]){
            cout<<num[10];
        }
        else{
            if(num[8]>num[9]) cout<<num[8];
            else cout<<num[9];
        }
    }
    else{
        if(num[1]+num[2]>num[3]+num[4]){
            if(num[1]+num[2]) cout<<num[1];
            else  cout<<num[2];
        }
        else if(num[1]+num[2]<num[3]+num[4]){
            if(num[3]>num[4]) cout<<num[3];
            else cout<<num[4];
        }
        else cout<<num[5];
    }
}

//12       ,        
#include <iostream>
using namespace std;
void main(){
    int num[13]={0,1,1,1,2,1,1,1,1,1,1,1,1};
    if(num[1]+num[2]+num[3]+num[4]==num[5]+num[6]+num[7]+num[8]){
        if(num[1]+num[9]==num[10]+num[11]){
            cout<<num[12];
        }
        else if(num[1]+num[9]<num[10]+num[11]){
            if(num[10]==num[11]) cout<<num[9];
            else if(num[10]>num[11]) cout<<num[10];
            else cut<<num[11];
        }
        else{
            if(num[10]>num[11]) cout<<num[11];
            else if(num[10]<num[11]) cout<<num[10];
            else cout<<num[9];
        }
    }
    else if(num[1]+num[2]+num[3]+num[4]<num[5]+num[6]+num[7]+num[8]){
        if(num[1]+num[2]+num[5]==num[3]+num[6]+num[9]){
            if(num[8]==num[7]) cout<<num[4];
            else if(num[7]>num[8]) cout<<num[7];
            else cout<<num[8];
        }
        else if(num[1]+num[2]+num[5]<num[3]+num[6]+num[9]){
            if(num[1]==num[2]) cout<<num[6];
            else if(num[1]<num[2]) cout<<num[1];
            else cout<<num[2];
        }
        else{
            if(num[1]==num[3]) cout<<num[5];
            else cout<<num[3];
        }
    }
    else{
        if(num[1]+num[2]+num[5]==num[3]+num[6]+num[9]){
            if(num[8]==num[7]) cout<<num[4];
            else if(num[7]>num[8]) cout<<num[7];
            else cout<<num[8];
        }
        else if(num[1]+num[2]+num[5]>num[3]+num[6]+num[9]){
            if(num[1]==num[2]) cout<<num[6];
            else if(num[1]<num[2]) cout<<num[2];
            else cout<<num[1];
        }
        else{
            if(num[1]==num[3]) cout<<num[5];
            else cout<<num[3];
        }
    }
}

좋은 웹페이지 즐겨찾기