斐波那契的整除

来源:互联网 发布:古装电影推荐 知乎 编辑:程序博客网 时间:2024/06/03 09:24

问题·是这样的:

已知斐波那契数列的前n项为1,1,2,3,5,8,13,21,34......问f(n)的值能否被3和4整除?

输入:输入数据有若干组,每组包含一个整数n(1<n<1000000000).

输出:对应每组数据,若f(n)能被3整除,则输出3;

                                    若f(n)能被4整除,则输出4;

                                    若f(n)能被12整除,则输出yes;

                                    否则输出no


如果真的把每项f(n)求出来,那真的要计算爆棚了!呵呵,那聪明的你有没有想到什么好办法呢?

如果观察够仔细,你会发现:f(n)能被3整除,则n可以被4整除;

                                                     f(n)能被4整除,则n可以被6整除;

                                                     f(n)能被12整除,则n可以被12整除;

哈哈,有没有一种被骗的感觉O(∩_∩)O哈哈~

现在我们可以优雅的敲出代码了,顺便可以可以吐槽题目的坑爹!

#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; }else if(n%6==0){cout<<"4"<<endl;}else{cout<<"No"<<endl;}}}return 0;}


                                                     



0 0
原创粉丝点击