蛟龙二班(偷懒,只写代码!)

📅 2026/7/9 12:24:11 👁️ 阅读次数 📝 编程学习
蛟龙二班(偷懒,只写代码!)

自定义函数(斐波那契数列)

代码:

#include<bits/stdc++.h> using namespace std; int a[10005]={0,1,1}; int b(int n){ for(int i=3;i<=n;i++){ a[i]=a[i-1]+a[i-2]; } return a[n]; } int n; int main(){ cin>>n; cout<<b(n); return 0; }

整数去重(1)

代码:

#include<bits/stdc++.h> using namespace std; int a[2005],b[2005],n; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ b[a[i]]++; } for(int i=1;i<=n;i++){ if(b[a[i]]>0){ cout<<a[i]<<' '; b[a[i]]=0; } } return 0; }

数组右移

代码:

#include<bits/stdc++.h> using namespace std; int a[2005],n,m; int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=m;i++){ for(int j=n-1;j>=1;j--){ swap(a[j],a[j+1]; } } for(int i=1;i<=n;i++){ cout<<a[i]<<' '; } return 0; }

数组左移

代码:

#include<bits/stdc++.h> using namespace std; int a[2005],n,m; int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=m;i++){ for(int j=1;j<n;j++){ swap(a[j],a[j+1]; } } for(int i=1;i<=n;i++){ cout<<a[i]<<' '; } return 0; }

插入排序过程

代码:

#include<bits/stdc++.h> using namespace std; int a[2005],n; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=2;i<=n;i++){ int k=i; while(k>1&&a[k]>a[k-1]){//改a…<a…,降序排序 swap(a[k],a[k-1]); k--; } for(int j=1;j<=n;j++){ cout<<a[j]<<' '; } cout<<'\n'; } return 0; }

冒泡排序过程

代码:

#include<bits/stdc++.h> using namespace std; int a[2005],n; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ for(int j=1;j<=n-i;j++){ if(a[j]>a[j+1]){//< 为降序 swap(a[j],a[j+1]); } } for(int j=1;j<=n;j++){ cout<<a[j]<<' '; } cout<<'\n'; } return 0; }

选择排序过程

代码:

#include<bits/stdc++.h> using namespace std; int a[2005],n; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ int k=i; for(int j=i+1;j<=n;j++){ if(a[k]>a[j]){//< 为降序 k=j; } } swap(a[i],a[k]); for(int j=1;j<=n;j++){ cout<<a[j]<<' '; } cout<<'\n'; } return 0; }

二分查找

代码:

#include<bits/stdc++.h> using namespace std; int a[2005],n; int Findx(int l,int r,int x){ while(l<=r){ int mid=(l+r)/2; if(a[mid]==x){ return mid; }else if(a[mid]<x){ l=mid+1; }else{ r=mid-1; } } return -1; } int x; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>x; cout<<Findx(1,n,x); return 0; }

10进制转k进制

代码:

#include<bits/stdc++.h> using namespace std; string s(int x,int k){ string a,g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; do{ a+=g[x%k]; x/=k; }while(x!=0); reverse(a.begin(),a.end()); return a; } int x,k; int main(){ cin>>x>>k; cout<<s(x,k); return 0; }

k进制转10进制

代码:

#include<bits/stdc++.h> using namespace std; int s(string x,int k){ string g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int a=0; for(int i=0;i<x.size();i++){ a=a*k+g.find(x[i]); } return a; } int k; string x; int main(){ cin>>x>>k; cout<<s(x,k); return 0; }

结束!