问题链接:https://projecteuler.net/problem=669
背景:我现在有2个已赋值的一维动态数组a和b,a是存放了N个斐波那契数,b使用了“next permutation”实现了1到N的全排列。
问题:如何找到b中的一组排列,这组排列的**每**相邻两项元素之和等于某一个斐波那契数(即等于a中某个元素),最后输出这组排列。
本人萌新,目前使用两层循环来实现。但是由于第二层循环的判断条件符合就输出了结果,从而导致多输出了许多不符合要求的排列。
do
{
for (long i = 2; i < n; i++)
{
for (long j = 0; j < n - 1; j++)
{
if ((b[j] + b[j + 1]) == a[i])
{
for (long k = 0; k < n; k++)
cout << b[k] << "\t";
cout <<"K"<< endl;
}
}
}
} while (next_permutation(b, b + n));