qq_38593052 2019-09-09 09:34 采纳率: 0%
浏览 470
已结题

双层循环的判断问题(急!!!)

问题链接: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));

图片说明

  • 写回答

5条回答 默认 最新

  • GentleTK 2019-09-09 09:47
    关注

    有两个疑问。
    1.你的next_permutation(b, b + n)是如何实现的?是保存了每一种排列吗

    2.要输出的排列是你全排列中的一组排列吗?

    我说一下我的想法:在你的第二层循环里,判断条件符合时,continue,不符合就break,跳出第二层循环,进行下一组排列的比对判断。在第二层循环外面,判断j是否是最后一个元素下标,输出这组排列。

    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献