下面的代码是自己写的,难免有纰漏之处,发现请指正,谢谢。
点击2011年北航计算机复试上机题
/**************************************************************************
* Problem: 北航2011上机题1
* Copyright 2011 by Yan
* DATE:
* E-Mail: yming0221@gmail.com
************************************************************************/
#include<stdio.h>
int tab[20001];/*存储每个数的因数之和*/
int main()
{
int m,n;
int i,j;
int flag;
for(i=1;i<20001;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0) tab[i]+=j;
}
}
while(scanf("%d %d",&m,&n)!=EOF)
{
flag=0;
for(i=m;i<=n;i++)
{
for(j=m;j<i;j++)
{
if(tab[i]==j && tab[j]==i) printf("%d %d ",j,i),flag=1;
}
}
if(flag==1) printf("\n");
if(flag==0) printf("NONE\n");
}
return 0;
}
上面使用打表的方式,这样打表只计算一遍,如果是多重输入的话推荐这样,如果是单重输入,可以将打表放在输入后,减少打表时间复杂度。
/**************************************************************************
* Problem: 2011北航上机2题
* Copyright 2011 by Yan
* DATE:
* E-Mail: yming0221@gmail.com
************************************************************************/
#include<stdio.h>
#define MAX 21
#define MIN(a,b) (a)>(b)?(b):(a)
int value[MAX][MAX];
int sub[MAX][MAX];
int main()
{
freopen("input","r",stdin);
int m,n;/*原矩阵大小*/
int i,j;
int x,y;/*替换矩阵大小 x行、y列*/
int posx,posy;
int tmp1,tmp2;
while(scanf("%d %d",&m,&n)!=EOF)
{
for(i=0;i<m;i++)
for(j=0;j<n;j++) scanf("%d",&value[i][j]);
scanf("%d %d",&x,&y);
for(i=0;i<x;i++)
for(j=0;j<y;j++) scanf("%d",&sub[i][j]);
scanf("%d %d",&posx,&posy);
tmp1=MIN(posx+x,m);tmp2=MIN(posy+y,n);
for(i=posx-1;i<tmp1;i++)
for(j=posy-1;j<tmp2;j++)
value[i][j]=sub[i-posx+1][j-posy+1];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d ",value[i][j]);
printf("\n");
}
}
return 0;
}
/**************************************************************************
* Problem: 2011北航上机题3
* Copyright 2011 by Yan
* DATE:
* E-Mail: yming0221@gmail.com
************************************************************************/
#include<stdio.h>
char str[100];
int main()
{
freopen("input","r",stdin);
int i,j;
while(scanf("%s",str)!=EOF)
{
for(i=0;str[i]!='\0';i++)
{
if(str[i]=='-')
{
if(str[i-1]>='A' && str[i-1]<='Z' && str[i+1]>='A'
&& str[i+1]<='Z' && str[i+1]>str[i-1])/*大写字母扩展*/
{
for(j=str[i-1]+1;j<str[i+1];j++) printf("%c",j);
}
else if(str[i-1]>='a' && str[i-1]<='z' && str[i+1]>='a'
&& str[i+1]<='z' && str[i+1]>str[i-1])/*小写字母扩展*/
{
for(j=str[i-1]+1;j<str[i+1];j++) printf("%c",j);
}
else if(str[i-1]>='0' && str[i-1]<='9' && str[i+1]>='0'
&& str[i+1]<='9' && str[i+1]>str[i-1])/*数字扩展*/
{
for(j=str[i-1]+1;j<str[i+1];j++) printf("%c",j);
}
else printf("-");
}
else printf("%c",str[i]);/*不扩展*/
}
printf("\n");
}
return 0;
}
分享到:
相关推荐
计算机08年和09年的复试上机题,供大家参考
北航计算机复试上机真题 2006~2016
2011年北航计算机研究生复试上机题及本人写的代码,虽然面试被刷了,但我感觉上机应该没什么问题,其中应该有没考虑到的边界情况,但大体上还OK
此文档是原创,北航计算机复试上机题代码实现,用的是C语言。
北航计算机2008年的复试上机题目,考研共勉
北航复试计算机上机的习题 供考研复试时的参考 是近几年的
包含了2006年到2012年的北航计算机系复试的上机真题和答案,供准备考研复试的学生参考
北航计算机研究生复试上机复习,北航内部的C提高讲解
北航计算机考研 复试 机试(c语言) 试题
本人已经上岸,此资源是自己和复试上岸同学一起回忆考研复试和初始的一些题目和答案,希望你也能成为我的师弟.站在巨人的肩膀少努力。加油,创作不易感谢支持.
北航计算机上机复试题详细解析上机试题上机复习的不错资料
2008-2009+北航计算机考研复试上机题
北航计算机复试题源程序,08-10三年的。我自己写的,供参考。
北航复试上机用的真题 每年3道 很有帮助 机试很重要 用C语言编写 环境为VC++
北航计算机复试面试题(完整版)资料.doc
北航计算机本科上机题,复试的时候参考价值极高。 里面甚至有复试上机原题,比如字符扩展就是上机原题。
考试类精品--北京航空航天大学计算机学院研究生考试复试上机部分往年试题及解答
浙大复试上机试题2005-2009 浙大复试上机试题2005-2009 浙大复试上机试题2005-2009
北航计算机复试面试题.pdf