题目要求三个不相同的正整数,且三个数中都不包含2或者4,而这三个数不同顺序都看作是一种,所以我们假定这三个数由小到大 i, j, k 。
#include <iostream>
#include <string>
using namespace std;
int check(int n) {
string s = to_string(n);
for (int i = 0; i < (int)s.size(); i++)
if (s[i] == '2' || s[i] == '4') return 0;
return 1;
}
int main()
{
int ans = 0;
for (int i = 1; i < 2019; i++)
for (int j = i + 1; j < 2019; j++)
for (int k = j + 1; k < 2019; k++)
if (i + j + k == 2019 && check(i) && check(j) && check(k)) ans++;
cout << ans << endl;
return 0;
}
代码中我们用到了一个string下的库函数——to_string(),这个函数可直接将int型转换成string字符串。
(代码借鉴自博客大佬:浅滩浅)