IT 经典难题
第一:请给出一个数据结构的定义,用来实现一个有通道和墙构成的矩形迷宫。
第二:水仙花,153=1(三次方)+5(三次方)+3(三次方),请写出一个函数用来找出所有水仙花数,并尽可能提高这个函数的执行速度。
第三:请给出单链表结构定义,每个结点用来存储一个整型数,并且给出一段代码来合并两个已经按照该整形数从小到大排序好的链表使得合并后的链表也是同样的排序。
第四:请给出一个函数计算一个32为整数的二进制表示中“1”的个数,尽量不用循环判断每一位方式。
第四:顺读和倒读都一[color=red]样的字符串称为回文,例如ABCBA,ABBA,AAA,B....函数P被用来获取所有由'A‘,’B‘和’C'组成长度不超过2N的回文('A','B'和'C‘可以出现任意多次也可以不出现),下面程序N=3的情况下请阅读并补充完成这段代码
#include<stdio.h>
void p(char * s,int i, int n){
if(i>0){
int j;
for(j=i-1;j>0;--j) putchar(s[j]);
for( ) putchar(s[j]);
putchar('\n');
for(j=i-1;j>=0;--j) putchar(s[j]);
for( ) putchar(s[j]);
putchar('\n');
}
if(i<n){
char c;
for(c=_______;c<=_________;++c){
s[i]=c;
p( );
}
}
int main(void){
char s[3];
p(s,0,3);
return 0;
}
提示在递归函数P中,S用来保存回文的后一半,前一半通过反向输出字符获得,S[0]是回文的中间字符,如果回文长度是偶数,它将会重复一次,如果回文长度是奇数,则不会重复。
第四:请写出一个函数用来判断一个点到一个平面的关系,用一个点和法向量来表示平面,输入一个点和一个面返回该点在面得前面,后面还是这个面上,如果需要的话,请给出相关数据结构定义。