广州广州网站建设公司,网站需要怎么做的吗,产品宣传册设计与制作,沙井商城网站建设7.29 Fibonacci数列题目解析代码 合法括号序列判断题目题解代码 两种排序方法题目#xff1a;题解代码 Fibonacci数列
题目 题目链接: 点击跳转
解析
【题目解析】#xff1a; 本题是对于Fibonacci数列的一个考察#xff0c;Fibonacci数列的性质是第一项和第二项都为1题解代码 Fibonacci数列
题目 题目链接: 点击跳转
解析
【题目解析】 本题是对于Fibonacci数列的一个考察Fibonacci数列的性质是第一项和第二项都为1后面的项形成递归 F(n) F(n - 1) F(n - 2)。【解题思路】 本题可以通过先找到距离N最近的两个Fibonacci数这两个数分别取自距离N的最近的左边一个数L和右边一个数R然后通过min(N - L, R - N)找到最小步数。
代码
#include iostream
using namespace std;int main(){int N,l0,r0,F0,F00,F11;cinN;while (true) {FF0F1;F0F1;F1F;if(FN){lN-F;}else{rF-N;break;}}coutmin(l,r)endl;
}
// 64 位输出请用 printf(%lld)合法括号序列判断
题目 题目链接: 点击跳转
题解
题目解析】 本题考查的是对栈的应用 【解题思路】 用栈结构实现栈中存放左括号当遇到右括号之后检查栈中是否有左括号如果有则出栈如果没有则说明不匹配注意边界问题
代码
#includestack
class Parenthesis {
public:bool chkParenthesis(string A, int n) {if(A.empty()(n%2)!0)return false;stackchar st;for(int i0;iA.size();i){if(A[i](){st.push(A[i]);}else if(!st.empty()A[i])){st.pop();}else {return false;}}if(st.empty())return true;elsereturn false;}
};两种排序方法
题目 点击跳转: 两种排序方法
题解
思路很简单将接受的字符串都放到vector容器中利用string的operator运算符重载来按ascii比较字符串利用string的size来比较字符串的长度
代码
#includeiostream
#includevector
#includestring
using namespace std;
int main()
{
int n;
cinn;
vectorstring v;
v.resize(n);
for(auto str : v)cinstr;
bool lenSym true, lexSym true;
// 这里要注意从i1开始遍历前后比较比较长度
for(size_t i 1; i v.size(); i)
{if(v[i-1].size() v[i].size()){lenSym false;break;}
}
//比较ASCII码
for(size_t i 1; i v.size(); i)
{if(v[i-1] v[i]){lexSym false;break;}
}if (lenSym lexSym)coutbothendl;
else if (!lenSym lexSym)coutlexicographicallyendl;
else if (lenSym !lexSym)coutlengthsendl;
else if (!lenSym!lexSym)coutnoneendl;
return 0;
}