三个数相加等于30问题的编程实现
描述
☐ + ☐ + ☐ = 30, ☐ 里填{1, 3, 5, 7, 9, 11, 13, 15} 可以重复填
当然结果是不存在的 不过如何验证是不是真的不存在呢
C++
1 | // g++ -Wall -fomit-frame-pointer -funroll-loops -Ofast -msse4.2 -mavx -std=c++11 a.cpp -lm -o a |
Emacs Lisp
1 | (setq nums '(1 3 5 7 9 11 13 15)) |
C
来自这里
#include <stdio.h>
int main(void)
{
const int c[8] = {1, 3, 5, 7, 9, 11, 13, 15};
for (size_t i = 0; i != 6; ++i)
for (size_t j = i + 1; j != 7; ++j)
for (size_t k = j + 1; k != 8; ++k)
if (c[i] + c[j] + c[k] == 30)
printf("%d + %d + %d = 30\n", c[i], c[j], c[k]);
return 0;
}
其实这个是有解的 因为题目里面没说进制 在其他进制下是有解的
本文标题:三个数相加等于30问题的编程实现
文章作者:Chris
发布时间:2015-05-27
最后更新:2019-05-29
原始链接:https://chriszheng.science/2015/05/27/Three-numbers-sum-up/
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
分享