【每日一题】day25_01 星际密码

学习目标:

目标:熟练运用Java所学知识


学习内容:

本文内容:使用java解决 星际密码


文章目录

  • 学习目标:
  • 学习内容:
  • 题目描述
  • 解题思路
  • 实现代码

题目描述

链接:https://www.nowcoder.com/questionTerminal/34f17d5f2a8240bea661a23ec095a062
来源:牛客网

星际战争开展了100年之后,NowCoder终于破译了外星人的密码!他们的密码是一串整数,通过一张表里的信息映射成最终4位密码。表的规则是:n对应的值是矩阵X的n次方的左上角,如果这个数不足4位则用0填充,如果大于4位的则只输出最后4位。

在这里插入图片描述

例如n=2时,
在这里插入图片描述

即2对应的数是“0002”。

输入描述:

输入有多组数据。
每组数据两行:
第一行包含一个整数n (1≤n≤100);
第二行包含n个正整数Xi (1≤Xi≤10000)

输出描述:

对应每一组输入,输出一行相应的密码。

解题思路

根据一下矩阵乘法规则
在这里插入图片描述
我们继续往下计算
在这里插入图片描述
我们会发现其实就是斐波那契数列的每一项,问题也就得到了解决

实现代码

import java.util.*;
public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);while(sc.hasNext()){int n=sc.nextInt();int[] ary=new int[10000];ary[0]=1;ary[1]=2;for(int i=2;i<10000;i++){ary[i]=(ary[i-1]+ary[i-2])%10000;}for(int i=0;i<n;i++){System.out.printf("%04d",ary[sc.nextInt()-1]);//格式化输出}System.out.println();}}
}

格式化输出例子:

public class Example_07 {public static void main(String[] args) {int a=123;System.out.printf("%d\n",a);System.out.printf("%4d\n",a);System.out.printf("%04d\n",a);}
}

运行结果:

123123
0123


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部