斐波那契数列二
难度:白银
时间限制:1秒
巴占用内存:64M
判断数字N(N<29)是否为斐波那契数列中出现的数,输出YES或者NO。
格式
输入格式:输入整型
输出格式:输出YES或者NO
//
// Created by abner on 2022/11/5.
//
#include <bits/stdc++.h>
using namespace std;
int main()
{
int f1=1,f2=1,fn=1;//迭代变量
int N;
cin>>N;
for(int i=1;fn<=N;i++) {//迭代次数
if (fn == N) {
cout << "YES";
return 0;
}
fn = f1 + f2;//迭代关系式
f1 = f2;
f2 = fn;//f1和f2迭代前进
}
cout<<"NO";
return 0;
}
如果只是语法,一个人,或者天赋极好(虽然我没见过),或者有其他语言的基础,是完全可以做到的。
但是,请永远记住,学习一门语言,不是为了考试,而是为了使用,而只要开始使用,就不再是语言本身的事了。
举个例子,如果你学习了c++基本语法之后,然后想要用它写一个windows桌面程序,你该怎么做?
即使你的程序只是一个最简单的计算器,没有数据库,没有io访问,你总的有一个窗口,有一些按钮吧。但是,要做到这一点并不简单!
最基本的,你要了解windows的消息机制,能够对事件进行响应,知道对应的api位于那些系统动态库…
如果你不想直接调用wibdows API,你还可以使用其他框架(例如MFC等),这又是另一个广大的世界了。
而api之下,框架之下,本质上是对操作系统,对架构和设计的认知,这些东西又会涉及更多的东西。
因此,所谓掌握一门语言,语法层面占比是非常少的,其他的都包含在这门语言巨大的生态之中!
更不用说,对一门语言,按我的经历,即使只在语法层面,要想正真掌握,也只有在反复的实践中才能实现。
就好像c/c++的指针,若非真正进行过开发,经历过相关的“爱恨情仇”,你就不会对它有刻骨的认识。
作者:沈世钧
链接:https://www.zhihu.com/question/423236529/answer/1503471605
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。