1. 程式人生 > >華為2017筆試題 公司年會

華為2017筆試題 公司年會

題目:



這個題目如果用遞迴的函式的話,主要就是要避免死迴圈

程式碼(沒地方提交,不知道對不對):

#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; }