Posted on 2011-08-26 17:58
Uriel 阅读(206)
评论(0) 编辑 收藏 引用 所属分类:
考研&保研复试上机题
这套有点难度。。
1. N的阶乘
标了5星。。偷懒不想写高精度。。JAVA乱搞了。。
提交完发现目前就我一个偷懒用JAVA的。。不好意思贴代码了。。有空C++再敲一遍高精度。。
不知道到时候上机考试的时候能不能交JAVA的。。
2. 最大序列和
也算是乱搞的。。最后特判下全是负数的情况。。写得很挫。。
//2006年清华大学计算机研究生机试题 最大序列和

#include<stdio.h>
#include<stdlib.h>
#define I long long

int n;
I a[1000010];


int main()
{
int i;

while(~scanf("%d", &n))
{
I mx = - 1<<63LL, tp = 0;

for(i = 0; i < n; ++i)
{
scanf("%lld", &a[i]);

if(tp + a[i] > 0)
{
tp += a[i];
if(tp > mx) mx = tp;
}
else
tp = 0;
}
I mi = a[0];

for(i = 0; i < n; ++i)
{
if(a[i] > mi) mi = a[i];
}
if(mi < 0) mx = mi;
printf("%lld\n", mx);
}
return 0;
}
3. 二叉树遍历
以前POJ上做过。。于是又偷懒了。。囧rz
//2006年清华大学计算机研究生机试题 二叉树遍历

#include<stdio.h>
#include<stdlib.h>
#include<string.h>


typedef struct Node
{
char c;
struct Node *l, *r;
}*BTree;


Node *Create(char *pre, char *in, int n)
{
Node *r;
char *p;
int k;
if(n <= 0) return NULL;
r = new Node;
r->c = *pre;
for(p = in; p < in + n; ++p)
if(*p == *pre) break;
k = p - in;
r->l = Create(pre + 1, in, k);
r->r = Create(pre + k + 1, p + 1, n - k - 1);
return r;
}


void PostOrder(BTree T)
{

if(T)
{
PostOrder(T->l);
PostOrder(T->r);
putchar(T->c);
}
else
return;
}


int main()
{
int n;
char s1[30], s2[30];
BTree T;

while(gets(s1) != NULL)
{
gets(s2);
n = strlen(s1);
T = Create(s1, s2, n);
PostOrder(T);
puts("");
T = NULL;
}
return 0;
}