大数加法
#include<iostream>
#include<string.h>
using namespace std;
int a[10005],b[10005];
char s1[10005],s2[10005];
int main(){
while(cin>>s1>>s2){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
int l1=strlen(s1),l2=strlen(s2);
int k=l1>l2?l1:l2;
for(int i=l1-1;i>=0;i--){
a[l1-1-i]=s1[i]-'0';
}
for(int i=l2-1;i>=0;i--){
b[l2-1-i]=s2[i]-'0';
}
for(int i=0;i<=k;i++){
a[i]+=b[i];
if(a[i]>9){
a[i]-=10;
a[i+1]++;
}
}
if(a[k]){
for(int i=k;i>=0;i--) cout<<a[i];
}
else{
for(int i=k-1;i>=0;i--) cout<<a[i];
}
cout<<endl;
}
return 0;
}
斐波那契数列
#include<iostream>
using namespace std;
typedef long long ll;
ll a[10005];
int fibo(int n){//递归
if(n==1 || n==2) return 1;
else return fibo(n-1)+fibo(n-2);
}
ll Fibo(int n){//非递归打表
a[1]=a[2]=1;
for(int i=3;i<=10000;i++){
a[i]=a[i-1]+a[i-2];
}
return a[n];
}
int main(){
int n;
while(cin>>n){
cout<<fibo(n)<<' '<<Fibo(n)<<endl;
}
return 0;
}
进制转化
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string ch(int n){
string s="";
while(n){
s+=n%2+'0';
n/=2;
}
reverse(s.begin(),s.end());
return s;
}
int main(){
int n;
while(cin>>n){
cout<<ch(n)<<endl;
}
return 0;
}
快排
#include<iostream>
using namespace std;
int a[10005];
void QSort(int a[],int l,int r){
if(l<r){
int i=l,j=r,temp=a[l];
while(i<j){
while(i<j&&a[j]>=temp) j--;
if(i<j) a[i++]=a[j];
while(i<j&&a[i]<temp) i++;
if(i<j) a[j--]=a[i];
}
a[i]=temp;
QSort(a,l,i-1);
QSort(a,i+1,r);
}
}
int main(){
int n;cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
QSort(a,1,n);
for(int i=1;i<=n;i++) cout<<a[i]<<' ';
cout<<endl;
return 0;
}
直接插入排序
#include<iostream>
using namespace std;
int a[10005];
void InsertSort(int n){
int j;
for(int i=2;i<n;i++){
if(a[i]<a[i-1]){
a[0]=a[i];
for(j=i-1;a[j]>a[0];j--)
a[j+1]=a[j];
a[j+1]=a[0];
}
}
}
int main(){
int n;cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
InsertSort(n);
for(int i=1;i<=n;i++) cout<<a[i]<<' ';
cout<<endl;
return 0;
}
简单选择排序
#include<iostream>
using namespace std;
int a[10005];
void SelectSort(int n){
}
int main(){
int n;cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
SelectSort(n);
for(int i=1;i<=n;i++) cout<<a[i]<<' ';
cout<<endl;
return 0;
}