洛谷题目---P1936 水晶灯火灵

题目背景

《爱与愁的故事第五弹·Halloween》第二章。

题目容易吐血请谨慎阅读!
题目描述

爱与愁大神兴高采烈地踏出妖精系道馆——他已经获得了妖精系徽章(鼓掌)!可是一出门就遇到一群パンプジン(Because today is Halloween)!仲谋半?没事,爱与愁大神手上还仅存着一只水晶灯火灵(完克パンプジン)。或许是因为这是爱与愁大神存活的最后一只精灵,水晶灯火灵十分振奋,一击打垮了一群パンプジン。水晶灯火灵使用了一招***(被打上了马赛克?!),刚好符合以下③条规则:

①m,n∈{1,2,⋯ ,k}m,n \in {1,2,\cdots ,k}m,n∈{1,2,⋯,k}

②(n2−m×n−m2)2=1(n^2-m\times n-m2)2=1(n2−m×n−m2)2=1

③m,nm,nm,n为整数。

Ai Yuchou God was very happy,he wants to know m²+n² how is the biggest.Can you help him?Please output m and n.(以上翻译失败,造成许多不便请谅解)
输入格式

Only one:k。(What?还是失败?)
输出格式

共两行:第一行是m的最大值,第二行是n的最大值。(What?翻译成功了?)
输入输出样例
输入 #1

1995

输出 #1

m=987
n=1597

说明/提示

20%数据:k<=100

100%数据:k<=10^8

又是一道水题……

题目链接在这(前往请点击)

写这个题目主要是要看懂题目意思,然后推出规律来,我当时看了是一脸懵逼,这他喵的就是考数学嘛。然后看了别人的分析才知道这是一个斐波那契数列(Fibonacci sequence)。就是m和n对应斐波那契数列的每一项,比如k=1: m=1, n =1; k=2: m =1, n=2; k=3: m=2, n=3;…
下面就是实现代码(只要找到对应项就行了)。

#include <iostream>
using namespace std;
int k;
void solve(int k)
{
	int  n = 1, m = 1, t;
	while(n + m <= k)//循环找到最大的n和m
	{
		t = n;
		n = n + m;
		m = t;
	}
	cout << "m=" << m << endl;
	cout << "n=" << n << endl; 
}
int main()
{
	cin >> k;
	solve(k);
	return 0;
} 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值