https://www.acmicpc.net/problem/23842
브루트포스 알고리즘
풀이
올바른 수식을 찾아 반복문을 수행한다. 항상 두 자릿수에 맞게 표현해야 한다는 조건으로 출력한다.
코드
#include <bits/stdc++.h>
using namespace std;
#define fast ios_base::sync_with_stdio(false); cin.tie(NULL), cout.tie(NULL)
#define ll long long
int main(void){
fast;
int N; cin>>N;
int a[10]={6,2,5,5,4,5,6,3,7,6};
N-=4;
for(int i=0;i<10;++i){
for(int j=0;j<10;++j){
for(int l=0;l<10;++l){
for(int k=0;k<10;++k){
for(int h=0;h<10;++h){
for(int g=0;g<10;++g){
if((a[i]+a[j]+a[l]+a[k]+a[h]+a[g]==N) and (i*10+j+l*10+k==h*10+g)) {
cout<<i<<j<<'+'<<l<<k<<'='<<h<<g; return 0;
}
}
}
}
}
}
}
cout<<"impossible";
}