夢追い人

"It takes a dreamer to make a dream come true."―Vincent Willem van Gogh

SRM403 Div.2 Easy

日付が変更しそうだし、後もう少しでSRMなので手短に。

がんばる

4と7で構成される数字のうちnを超えない最大を求めよう!という問題。

とりあえず頑張って解いた。
以上

class TheLargestLuckyNumber {
   public:
   int find(int n)
  {
	vector <int> res(2), tmp;
	res[0] = 4; res[1] = 7;
	int ten=0, ans, a=2;
	for (int i=2; ten<n; i++) {
		ten = (int)pow(10.0, i-1);
		for (int j=0; j<a; j++) {
			tmp.push_back(res[res.size()-1-j]+ten*4);
			tmp.push_back(res[res.size()-1-j]+ten*7);
		}
		for (int j=0; j<tmp.size(); j++) {
			res.push_back(tmp[j]);
		}
		a *= 2;
		sort(res.begin(), res.end());
	}
	for (int i=res.size()-1; i>=0; i--) {
		if (res[i] <= n) {
			ans = res[i];
			break;
		}
	}
	return ans;
  }
};