Description
已知斐波那契數列有如下遞歸定義,f(1)=1,f(2)=1, 且n>=3,f(n)=f(n-1)+f(n-2),它的前幾項可以表示為1, 1,2 ,3 ,5 ,8,13,21,34…,現在的問題是想知道f(n)的值是否能被3和4整除,你知道嗎?
Input
輸入數據有若干組,每組數據包含一個整數n(1< n <1000000000)。
Output
對應每組數據n,若 f(n)能被3整除,則輸出“3”; 若f(n) 能被4整除,則輸出“4”;如果能被12整除,輸出“YES”;否則輸出“NO”。
Sample Input
4
6
7
12
Sample Output
3
4
NO
YES
原理:考慮是否有循環節(如果無限小數的小數點后,從某一位起向右進行到某一位止的一節數字循環出現,首尾銜接,稱這種小數為循環小數,這一節數字稱為循環節. 把循環小數寫成個別項與一個無窮等比數列的和的形式后可以化成一個分數),fn能被3整除,當且僅當n可以被4整除;fn能被4整除,當且僅當n可以被6整除;fn能被12整除,當且僅當n可以被12整除(4和6的最小公倍數)
#include <iostream>using namespace std;int main()
{int n;while(cin>>n){if(n%12==0)cout<<"YES"<<endl;else{if(n%4==0)cout<<"3"<<endl;elseif(n%6==0)cout<<"4"<<endl;elsecout<<"NO"<<endl;}}return 0;
}