Posted on 2011-08-26 17:00
Uriel 阅读(183)
评论(0) 编辑 收藏 引用 所属分类:
考研&保研复试上机题
这套也都是大水。。
1. 有多少不同的面值组合?
//2002年清华大学计算机研究生机试题(第I套) 有多少不同的面值组合?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int flg[300];
int main() {
int i, j, k, tmp;
memset(flg, 0, sizeof(flg));
for(i = 0; i <= 5; ++i) {
for(j = 0; j <= 4; ++j) {
for(k = 0; k <= 6; ++k) {
tmp = 8 * i + 10 * j + 18 * k;
if(tmp != 0 && !flg[tmp]) flg[tmp] = 1;
}
}
}
int cnt = 0;
for(i = 1; i <= 8 * 5 + 10 * 4 + 18 * 6; ++i)
if(flg[i]) cnt++;
printf("%d\n", cnt);
return 0;
} 2. 杨辉三角形
递归函数还是很弱。。异常丑陋。。
//2002年清华大学计算机研究生机试题(第I套) 杨辉三角形
#include<stdio.h>
#include<stdlib.h>
int ans[100][100];
void cal(int n) {
if(n == 1) return;
cal(n - 1);
ans[n - 1][0] = 1;
printf("1");
for(int i = 1; i < n; ++i) {
ans[n - 1][i] = ans[n - 2][i - 1] + ans[n - 2][i];
printf(" %d", ans[n - 1][i]);
}
ans[n - 1][n] = 1;
puts(" 1");
}
int main() {
int n, i, j;
while(~scanf("%d", &n)) {
ans[0][0] = ans[0][1] = 1;
puts("1 1");
cal(n - 1);
}
return 0;
} 3. 对称平方数
//2002年清华大学计算机研究生机试题(第II套) 有对称平方数
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
int i, j, tp, k, p[9];
for(i = 1; i < 256; ++i) {
tp = i * i;
k = 0;
while(tp > 0) {
p[k++] = tp % 10;
tp /= 10;
}
for(j = 0; j < k / 2; ++j) {
if(p[j] != p[k - 1 - j]) break;
}
if(j == k / 2) printf("%d\n", i);
}
return 0;
} 2011.09.11 PS:这题Rejudge了... 0也要输出...
4. 斐波那契数列
丑陋的代码。。
//2002年清华大学计算机研究生机试题(第II套) 斐波那契数列
#include<stdio.h>
#include<stdlib.h>
void cal(int n, int p1, int p2) {
printf(" %d", p1 + p2);
if(!n) return;
cal(n - 1, p2, p1 + p2);
}
int main() {
int n, i;
while(~scanf("%d", &n)) {
puts("0");
for(i = 1; i < n; ++i) {
printf("0 1");
cal(2 * (i - 1), 0, 1);
puts("");
}
}
return 0;
}