行业知识
考研机试C++题目精选
2026-11-01 08:44:31
来源:互联网转载
���多内容会在godownio.github.io更新
算法练习(C++代码)
考研上机或C语言代码笔试准备,暨大机试原题+letcode+牛客+中南大等高校机试
快速幂算法
题目:输入一个整数 n ,求 n^n 的个位数是多少。
快速幂算法:指数为偶数,则底数平方,指数除二;指数为奇数,则指数减一再把结果乘底数,底数平方,指数除二。指数看作二进制,除二可以看作位运算。
#include using namespace std;int main(){int n;cin>>n;int power=n;int base=n;int result = 1;while(power>0){if(power%2==1){result *= base;power /= 2;base *= base;//指数为奇数,先乘底数。除二小数部分舍去。底数平方 }else{power /= 2;base *= base;//指数为偶数,除二,底数平方 }}cout if(n==1||n==2){ return 1; } else return f(n-2)+f(n-1);}int main(){ int n; cin n; coutint n,m;coutcinscore[i];}//coutfor(int j=n-i-1;j0;j--){if(score[j]score[j-1]){int temp = score[j];score[j] = score[j-1];score[j-1] = temp;}}//冒泡排序}int i=0,j;for(j=1;jif(score[j]!=score[i]){score[++i]=score[j];}}//双指针去重coutcoutcoutstack if(strs[i]=='('||strs[i]=='{'||strs[i]=='['){s.push(strs[i]);}if(strs[i]==')'){if(!s.empty()&&s.top()=='(') s.pop();else{coutif(!s.empty()&&s.top()=='{') s.pop();else{coutif(!s.empty()&&s.top()=='[') s.pop();else{coutif(m1&&n1){return path(m-1,n)+path(m,n-1);}else return 1;//1*2或者2*1或者1*6的路径选择都为1个 }int main(){int m,n;cinmn;cout int dp[m][n]; for(int i=0;i for(int j=0;j if(j0&&i0){ dp[i][j]=dp[i-1][j]+dp[i][j-1]; } else{ dp[i][j]=1; } } } return dp[m-1][n-1];}int main(){int m,n;cinmn;cout{0, 0, 0}, {0, 1, 0}, {0, 0, 0}}; // 将数组转换为 std::vector vector matrix.push_back(vector int m=block.size(),n=block[0].size(); vector for(int j=0;j if(block[i][j]==0){ if(j0&&i0){ dp[i][j]=dp[i-1][j]+dp[i][j-1]; }else{ dp[i][j]=1;//第一行或第一列 } }else{ dp[i][j]=0;//有障碍物 } } } return dp[m-1][n-1];}int main(){ int rows,cols; cout for(int j=0;j cinblock[i][j]; } } cout if(nm) return m; else return n;}int path(vector int m=block.size(),n=block[0].size(); vector for(int j=0;j if(i0&&j==0){ dp[i][j]=dp[i-1][j]+block[i][j];//第一行 }if(j0&&i==0){ dp[i][j]=dp[i][j-1]+block[i][j];//第一列 }if(j0&&i0){ dp[i][j]=min(dp[i][j-1],dp[i-1][j])+block[i][j]; } } } return dp[m-1][n-1];}int main(){ int rows,cols; cout for(int j=0;j cinblock[i][j]; } } coutint lowcost = 0;for(int i=0;iif(TT = lowcost + (T-lowcost)*H[i];return T;}//菜品总价小于折扣else{lowcost = lowcost + z[i]*H[i];//lowcost为当前折扣限度,比如第二轮中就是0.6*100+0.8*200coutint N,T;cout//coutfor (int j=i;jif(z[j]z[i]){double tempz;int tempH;tempz=z[j];z[j]=z[i];z[i]=tempz;tempH=H[j];H[j]=H[i];H[i]=tempH;}}//折扣排序}int cost = paychase(N,T,z,H);cout
上一篇:纯洁的服务器怎么设置网络?
下一篇:使命召唤怎么转日本服务器?