自定义函数(斐波那契数列)
代码:
#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; }
结束!