中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java實現Fibonacci(斐波那契)取余的示例代碼

發布時間:2020-10-09 06:05:36 來源:腳本之家 閱讀:181 作者:南墻 欄目:編程語言

Description
Fibonacci數列的遞推公式為:Fn=Fn-1+Fn-2,其中F1=F2=1。

當n比較大時,Fn也非常大,現在我們想知道,Fn除以10007的余數是多少。

Input
多組測試數據

輸入包含一個整數n。1 <= n <= 1,000,000。

Output
每組輸出一行,包含一個整數,表示Fn除以10007的余數。

Sample Input
10
22

Sample Output
55
7704

利用余數三大定理:

1.余數的加法定理

a與b的和除以c的余數,等于a,b分別除以c的余數之和,或這個和除以c的余數。

即:(a+b)%c = (a%c+b%c)%c

例如:23,16除以5的余數分別是3和1,所以23+16=39除以5的余數等于4,即兩個余數的和3+1.

當余數的和比除數大時,所求的余數等于余數之和再除以c的余數。

例如:23,19除以5的余數分別是3和4,故23+19=42除以5的余數等于3+4=7除以5的余數,即2.

2.余數的乘法定理

a與b的乘積除以c的余數,等于a,b分別除以c的余數的積,或者這個積除以c所得的余數。

即:(a*b)%c = (a%c*b%c)%c

例如:23,16除以5的余數分別是3和1,所以23×16除以5的余數等于3×1=3。

當余數的和比除數大時,所求的余數等于余數之積再除以c的余數。

例如:23,19除以5的余數分別是3和4,所以23×19除以5的余數等于3×4除以5的余數,即2.

3.同余定理

若兩個整數a、b被自然數m除有相同的余數,那么稱a、b對于模m同余,用式子表示為:a≡b ( mod m ),左邊的式子叫做同余式。

同余式讀作:a同余于b,模m。由同余的性質,我們可以得到一個非常重要的推論:

若兩個數a,b除以同一個數m得到的余數相同,則a,b的差一定能被m整除

用式子表示為:如果有a≡b ( mod m ),那么一定有a-b=mk,k是整數,即m|(a-b)

那么:如果有mk%m=0,b%m=0,就有(mk+b)%m 

package 第八次模擬;

import java.util.Scanner;
public class Demo12Fibonacci {
public static void main(String[] args) {
 Scanner sc = new Scanner(System.in);
 while(sc.hasNext()){
 
 int n = sc.nextInt();
 int []f = new int [n+2];
 int [] count=new int [n+2];
 f[1]=1;
 f[2]=1;
 for (int i = 3; i <=n; i++) {
 f[i]=(f[i-1]+f[i-2]);
 if(f[i]/10007>=1){
 f[i]%=10007; 
 }
 
 }
 System.out.println(f[n]);
 
 } 
 }
}

 到此這篇關于Java實現Fibonacci取余的示例代碼的文章就介紹到這了,更多相關Java Fibonacci取余內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

慈溪市| 当雄县| 元朗区| 广丰县| 平度市| 蒙阴县| 肃南| 乌鲁木齐县| 定州市| 海南省| 南平市| 乌苏市| 峡江县| 仁布县| 溧水县| 衡东县| 浦北县| 隆子县| 西安市| 巩留县| 哈密市| 江达县| 澄城县| 钟山县| 上林县| 莒南县| 普陀区| 城步| 安西县| 临武县| 平乡县| 吴忠市| 郁南县| 宽城| 江陵县| 阳泉市| 宣威市| 包头市| 黎平县| 客服| 临泉县|