當(dāng)前位置:
首頁 >
网易2017春招笔试真题编程题集合(5)——魔力手环
發(fā)布時(shí)間:2025/3/21
45
豆豆
生活随笔
收集整理的這篇文章主要介紹了
网易2017春招笔试真题编程题集合(5)——魔力手环
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
小易擁有一個(gè)擁有魔力的手環(huán)上面有n個(gè)數(shù)字(構(gòu)成一個(gè)環(huán)),當(dāng)這個(gè)魔力手環(huán)每次使用魔力的時(shí)候就會(huì)發(fā)生一種奇特的變化:每個(gè)數(shù)字會(huì)變成自己跟后面一個(gè)數(shù)字的和(最后一個(gè)數(shù)字的后面一個(gè)數(shù)字是第一個(gè)),一旦某個(gè)位置的數(shù)字大于等于100就馬上對(duì)100取模(比如某個(gè)位置變?yōu)?03,就會(huì)自動(dòng)變?yōu)?).現(xiàn)在給出這個(gè)魔力手環(huán)的構(gòu)成,請(qǐng)你計(jì)算出使用k次魔力之后魔力手環(huán)的狀態(tài)。?
輸入描述:
輸入數(shù)據(jù)包括兩行: 第一行為兩個(gè)整數(shù)n(2 ≤ n ≤ 50)和k(1 ≤ k ≤ 2000000000),以空格分隔 第二行為魔力手環(huán)初始的n個(gè)數(shù),以空格分隔。范圍都在0至99.輸出描述:
輸出魔力手環(huán)使用k次之后的狀態(tài),以空格分隔,行末無空格。輸入例子:
3 2 1 2 3輸出例子:
8 9 7參考:http://blog.csdn.net/zheng548/article/details/71075163 import java.util.Scanner;public class Main {/*** 利用矩陣快速冪*/public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int k = sc.nextInt();//用一個(gè)二維數(shù)組存儲(chǔ)int[][] arr= new int[1][n];for (int i = 0; i < n; i ++) {arr[0][i] = sc.nextInt();}//初始化單元矩陣int[][] mul = new int[n][n];for (int i = 0; i < n; i ++) {if (i < n - 1) {mul[i][i] = 1;mul[i + 1][i] = 1;} else {mul[i][i] = 1;mul[0][i] = 1;}}/*** 矩陣快速冪的核心部分* 二分搜索 與之本質(zhì) 類似*/for (; k > 0; k >>= 1) {if ((k & 1) == 1) {arr = Core(arr, mul);}mul = Core(mul, mul);}/*** 輸出結(jié)果*/int i;for (i = 0; i < n - 1; i ++) {System.out.print(arr[0][i] + " ");}System.out.println(arr[0][i]);}/*** 矩陣相乘* 1. 矩陣a與b相乘, a的列數(shù)等于b的行數(shù)* 2. 結(jié)果矩陣的行等于a 的行數(shù)* 3. 結(jié)果矩陣的列等于b 的列數(shù)** @param a 矩陣a* @param b 矩陣b* @return 返回結(jié)果矩陣*/private static int[][] Core(int[][] a, int[][] b) {int rowRes = a.length;int columnRes = b[0].length;int columnA = a[0].length; // a[0].length == b.length; 矩陣相乘的條件int[][] c = new int[rowRes][columnRes];for (int i =0; i < rowRes; i ++) {for (int j = 0; j < columnRes; j ++) {for (int k = 0; k < columnA; k ++) {if (a[i][k] == 0 || b[k][j] == 0) {continue; //剪枝 }c[i][j] += a[i][k] * b[k][j];}//100取余運(yùn)算if (c[i][j] >= 100) {c[i][j] %= 100;}}}return c;}}
關(guān)于矩陣快速冪:http://blog.csdn.net/alwaystry/article/details/70187764
?
轉(zhuǎn)載于:https://www.cnblogs.com/dengyt/p/6963253.html
總結(jié)
以上是生活随笔為你收集整理的网易2017春招笔试真题编程题集合(5)——魔力手环的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS 热更新方案 - lance的专栏
- 下一篇: 如果通过当前元素知道父元素、同级元素