题解 | #星际密码#

星际密码

http://www.nowcoder.com/questionTerminal/34f17d5f2a8240bea661a23ec095a062

题目

牛客
在这里插入图片描述

解题思路

本题的基本意思就是给你给定一个矩阵:,然后一个数n,n表示矩阵的n次方,这个n代表一个数也就是解密的结果,即为n的结果的(也是一个矩阵)的左上角数字。
如果该数字小于4就用0补充,如果大于4就只输出最后4位

同时矩阵的乘法公式如下:
在这里插入图片描述
所以先代入前几个数,可以发现如下规律

当n=1时,左上角值=1

当n=2时,左上角值=2

=

当n=3时,左上角值=3

=

当n=4时,左上角值=4

=

当n=5时,左上角的值=8

=

当n=6时,左上角的值=?

····
····
····

可以发现是很明显的斐波那契数列

代码

// write your code here cpp
#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;

void Fib(vector<int>& fib)
{
    for(int i=2 ;i < 10001;i++)
    {
        fib.push_back((fib[i-1]+fib[i-2])%10000);
    }
}
int main()
{
    int number=0;//数据个数
    vector<int> fib={1,1};//斐波那契数列
    Fib(fib);//初始化
    while(cin >> number)
    {
        int temp;
        while(number--)
        {
            cin >> temp;
            printf("%04d",fib[temp]);
        }
        cout<<endl;
    }
    return 0;
}
全部评论

相关推荐

迷茫的大四🐶:价格这么低都能满了?
点赞 评论 收藏
分享
哇哇的菜鸡oc:他这不叫校招offer,而是实习offer
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务