国名排序【字符串】
#include<bits/stdc++.h>
using namespace std;
string s[1000];
int main()
{
int b=0,o=0;
while(getline(cin,s[b++]));
b--;
int n=b,i,j;
float temp;
for(i=n-1;i>=1;i--)
{
for(j=0;j<i;j++)
{
if(s[j]>s[j+1])
swap(s[j],s[j+1]);
}
}
for(o=0;;o++)
{
if(s[o]=="")
return 0;
cout<<s[o]<<endl;
}
return 0;
}
查找数所在的位置
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m[1000],x;
cin>>n;
for(int i=1;i<=n;i++)
cin>>m[i];
cin>>x;
for(int i=1;i<=n;i++)
{
if(m[i]==x)
{
cout<<i;
return 0;
}
}
cout<<"-1";
return 0;
}
数的分离
#include<bits/stdc++.h>
using namespace std;
int digit(int n,int k)
{
for(int i=1;i<=k-1;i++)
n=n/10;
return n%10;
}
int main()
{
int n,k;
cin>>n>>k;
cout<<digit(n,k);
return 0;
}
帕多瓦数列
#include<bits/stdc++.h>
using namespace std;
int f(int n)
{
if(n<3)
return 1;
return f(n-2)+f(n-3);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n-1));
return 0;
}
求斐波那契数列第n项
#include<bits/stdc++.h>
using namespace std;
int f(int n)
{
if(n==0)
return 0;
if(n==1)
return 1;
return f(n-1)+f(n-2);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
return 0;
}
过河卒(不一样的哦)
#include<bits/stdc++.h>
using namespace std;
int b[22][22];//棋盘坐标,1不可以,0可以
long long int f[22][22];//*记录到该坐标可行路线次数
int main()
{
int n,m,x,y;//目标点和马的位置
cin>>n>>m>>x>>y;
b[x][y]=1;
//马左上两个点
if(x-1>=0 && y-2>=0)
b[x-1][y-2]=1;
if(x-2>=0 && y-1>=0)
b[x-2][y-1]=1;
//马左下两个点
if(x-1>=0 && y+2<=m)
b[x-1][y+2]=1;
if(x-2>=0 && y+1<=m)
b[x-2][y+1]=1;
//马右上两个点
if(x+1<=n && y-2>=0)
b[x+1][y-2]=1;
if(x+2<=n && y-1>=0)
b[x+2][y-1]=1;
//马右下两个点
if(x+1<=n && y+2<=m)
b[x+1][y+2]=1;
if(x+2<=n && y+1<=m)
b[x+2][y+1]=1;
f[0][0]=1;
for(int i=1;i<=m;i++)//初始化第0行
{
if(b[0][i]==1)
f[0][i]=0;
else
f[0][i]=f[0][i-1];
}
for(int i=1;i<=n;i++)//初始化第0列
{
if(b[i][0]==1)
f[i][0]=0;
else
f[i][0]=f[i-1][0];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(b[i][j]==1)
f[i][j]=0;
else
f[i][j]=f[i-1][j]+f[i][j-1];
}
}
cout<<f[n][m];
return 0;
}