hdu 1021Fibonacci Again

题目:点击打开链接;

题意:给出一个斐波那契的定义,求解任意一个数能否被3整除;

分析:本题是求解该数列的值能否被3整除而不是求解数列中得值所以在采用同余的方式解决问题;

(不想用数组写只好用这种迭代关系写)

#include <set>
#include <map>
#include <stack>
#include <queue>
#include <math.h>
#include <vector>
#include <utility>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <functional>

using namespace std;

int main()
{
    int n;
    while(cin>>n){
        int a,b,sum;
        a=7%3;
        b=11%3;
        if(n==0)sum=7;
        if(n==1)sum=11;
        for(int i=2;i<=n;i++){
            sum=(a+b)%3;
            a=b;
            b=sum;
        }
        if(sum==0)puts("yes");
        else puts("no");
    }
}


你可能感兴趣的:(数学,同余)