華為2017筆試題 公司年會
阿新 • • 發佈:2019-01-27
題目:
這個題目如果用遞迴的函式的話,主要就是要避免死迴圈
程式碼(沒地方提交,不知道對不對):
#include <iostream>
#include<algorithm>
using namespace std;
int list[30], key = 0;
void add(int a)
{
if (key >= 30)return;
for (int i = 0; i < key; i++)if (list[i] == a)return;
list[key++] = a;
}
void add(int a, int b, int c)
{
add(a), add(b), add(c);
add(a * 10 + b), add(a * 10 + c);
add(b * 10 + a), add(b * 10 + c);
add(c * 10 + a), add(c * 10 + b);
}
void add25(int a, int b, int c)//只考慮2和5
{
add(a, b, c);
if (a == 2 || a == 5)add(7 - a, b, c);
if (b == 2 || b == 5)add(a, 7 - b, c);
if (c == 2 || c == 5)add(a, b, 7 - c);
}
void add69(int a, int b, int c)//只考慮6和9
{
add25(a, b, c);
if (a == 6 || a == 9)add25(15 - a, b, c);
if (b == 6 || b == 9)add25(a, 15 - b, c);
if (c == 6 || c == 9)add25(a, b, 15 - c);
}
int main()
{
int a, b, c;
scanf("%d,%d,%d", &a, &b, &c);
int m = a;
if (m < b)m = b;
if (m < c)m = c;
add69(a, b, c);
sort(list, list + key);
cout << list[m - 1];
return 0;
}