极值问题

题目:
在这里插入图片描述
题解:
咋一看好像很麻烦的, 开动机智的小脑袋瓜就可以想出来啦hhhh
咳咳 其实是对条件中的公式进行变形
(n2-nm-m22=1
( m2+n
m-n2 )2 =1
( m2+nm-n2 )= m2+2nm+n2-mn-2n2;
( m2+n
m-n2 )=(m+n)2-mn-2n2;
综上 可推出
(n2 -n*m-m22=((m+n)2-(m+n)*n-n2)2
即 m->n,n->m+n;
嘿嘿嘿 这个时候 我们从最简单的情况带入;
带入m=1时,解出n=1;
带入m=2时,解出n=3;
带入m=3时,解出n=5;
带入m=4时,无解;
带入 m=5时,解出n=8;
……….
1,1,2,3,5,8,………这 这 这 不就是传说中的斐波那契数列嘛??!!!
得出规律,n,m时斐波那契数列中相邻的两个数。即 求出斐波那契数列中<=k的相邻的两个数即可。 如果还是不理解的话 就看代码吧。

#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int main (){
    while(scanf("%d",&k)){
        int n=1,m=1,p=m+n;
        while(p<=k){m=n,n=p,p=m+n;}
        printf("m=%d\nn=%d",m,n);
    }
    return 0;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值