下面有当时的代码,最后一个题花了点时间,前面都是水题,竞赛网址:http://acm.lsnu.edu.cn/oj/
B:
#include<stdio.h>
int main()
{
int a[11][11];
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
a[i][0]=1;
a[0][i]=1;
}
for(i=1;i<n;i++)
for(j=1;j<n;j++)
{
a[i][j]=a[i-1][j]+a[i][j-1];
}
printf("%d\n",a[n-1][n-1]);
return 0;
}
C:
#include<stdio.h>
int main()
{
char a[105],b[205];
int i,j;
scanf("%s",a);
for(i=0,j=0;i<105;i++)
{
if(a[i]=='\0')break;
if(a[i]=='A'||a[i]=='a'||a[i]=='O'||a[i]=='o'||a[i]=='Y'||a[i]=='y'||a[i]=='E'||a[i]=='e'||a[i]=='U'||a[i]=='u'||a[i]=='I'||a[i]=='i')
continue;
else
{
if(a[i]<'a')a[i]=a[i]+32;
b[j+1]=a[i];
b[j]='.';
j=j+2;
}
}
b[j]='\0';
for(i=0;b[i]!='\0';i++)
{
printf("%c",b[i]);
}
printf("\n");
return 0;
}
D:
#include<stdio.h>
int main()
{
int i=5,j,k,x;
scanf("%d",&x);
if(x>=i)
{
k=x%i;
if(k)
printf("%d\n",(x-k)/i+1);
else printf("%d\n",(x-k)/i);
}
else printf("1\n");
}
H:
#include<stdio.h>
int main()
{
float A=0,B=0,C=0,A1,B1,C1;
int x,y,z,i;
char c;
scanf("%d %d %d",&x,&y,&z);
for(i=0;i<x;i++)
{
scanf("%f",&A1);
A+=A1;
}
c=getchar();
for(i=0;i<y;i++)
{
scanf("%f",&B1);
B+=B1;
}
for(i=0;i<z;i++)
{
scanf("%f",&C1);
C+=C1;
}
if(A>=B&&A>=C)printf("A\n");
else if(B>A&&B>=C)printf("B\n");
else if(C>A&&C>B)printf("C\n");
return 0;
}
G:
#include<stdio.h>
int a[2][10005];//定义一个二维数组,第一排是每个区间开始,第二排是结尾
int main()
{
int i,n,j,k,t;
scanf("%d",&n);
for(i=0;i<n;i++)//按每个区间起始大小排序
{
scanf("%d %d",&a[0][i],&a[1][i]);
}
for(i=0;i<n;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[0][k]>a[0][j])k=j;
if(k!=i)
{
t=a[0][k];
a[0][k]=a[0][i];
a[0][i]=t;
t=a[1][k];
a[1][k]=a[1][i];
a[1][i]=t;
}
}
for(i=1;i<n;i++)//比较相邻的两区间,是相交还是包容,如果是两种之一就将上一个位置变为-1,否则不动,循环下一个
{
if(a[0][i]<=a[1][i-1])
{
if(a[1][i]<=a[1][i-1])
{
a[0][i]=a[0][i-1];
a[1][i]=a[1][i-1];
a[0][i-1]=-1;
a[1][i-1]=-1;
}
else
{
a[0][i]=a[0][i-1];
a[0][i-1]=-1;
a[1][i-1]=-1;
}
}
}
for(i=0;i<n;i++)
{
if(a[0][i]>=0)
printf("%d %d\n",a[0][i],a[1][i]);
}
return 0;
}