让我打开 Python 试试啊
感觉上来说,有了高级数据结构,
比如这里的 set,算法也变得简单(优雅)了
趁有空模仿了一下,也来个蹩脚的 C++ 版
#include <iostream>
#include <cmath>
#include <vector>
#include <set>
int main()
{
int counter = 0;
for (int num=1000; num<10000; num++) {
std::vector<int> digits;
std::vector<int> diff;
int p=1;
for (int i=0; i<4; i++) {
digits.push_back((num/p)%10);
p *= 10;
}
for (int j=1; j<4; j++)
for (int k=0; k<j; k++)
diff.push_back(std::abs(digits[j]-digits[k]));
std::set<int> dg(digits.begin(), digits.end());
std::set<int> df(diff.begin(), diff.end());
if (dg==df)
counter += 1;
}
std::cout << counter << std::endl;
return 0;
}
【 在 lovellc 的大作中提到: 】
: counter = 0
: for num in range(1000,10000):
: digits = []
: for i in range(0,4):
: digits.append(num//(10**i)%10)
: #print(digits)
: diff = []
: for j in range(1,4):
: for k in range(0,j):
: diff.append(abs(digits[j]-digits[k]))
: #print(diff)
: if set(digits) == set(diff):
: counter+=1
: 优雅不
--
修改:easior FROM 183.131.109.*
FROM 183.131.109.*