我是靠谱客的博主 清新狗,最近开发中收集的这篇文章主要介绍大数 线性递推 Twice Equation,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目链接:https://nanti.jisuanke.com/t/A1541

题意:给你一个L,求不小于L的最小的N,使的存在正整数m满足2m(m+1)=n(n+1)

分析:这题一看就没什么思路,就索性直接根据2m(m+1)=n(n+1)打表,来找规律,可以发现前面几项就是3,20,119,696,4059

尝试一下找规律,如果自己不会找就直接用求线性递推式系数公式来暴力枚举,成功得到递推公式是f(n)=6f(n-1)-f(n-2)+2;

import java.io.*;
import java.util.*;
import java.math.*;
public class Main {
public static void main(String args[]) {
Scanner cin = new Scanner(System.in);
int T=cin.nextInt();
BigInteger[] fn=new BigInteger [1500];
BigInteger two=new BigInteger("2");
BigInteger six=new BigInteger("6");
BigInteger L;
fn[1]=new BigInteger("3");fn[2]=new BigInteger("20");
for(int i=3;i<=1200;i++) {
fn[i]=fn[i-1].multiply(six).subtract(fn[i-2]).add(two);
}
for(int i=0;i<T;i++) {
L=cin.nextBigInteger();
for(int j=1;j<=1200;j++) {
if(L.compareTo(fn[j])<=0) {
System.out.println(fn[j]);
break;
}
}
}
}
}

 

转载于:https://www.cnblogs.com/qingjiuling/p/11360168.html

最后

以上就是清新狗为你收集整理的大数 线性递推 Twice Equation的全部内容,希望文章能够帮你解决大数 线性递推 Twice Equation所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部