`
hereson3
  • 浏览: 162907 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

在优酷的几道笔试题

阅读更多
一、求一个三十二位整数的二进制数中一的个数
int count_ones(unsigned a)
{
    a = (a & 0x55555555) + ((a >> 1) & 0x55555555);
    a = (a & 0x33333333) + ((a >> 2) & 0x33333333);
    a = (a & 0x0f0f0f0f) + ((a >> 4) & 0x0f0f0f0f);
    a = (a & 0x00ff00ff) + ((a >> & 0x00ff00ff);
    a = (a & 0x0000ffff) + ((a >> 16) & 0x0000ffff);

    return a;
}

二、水仙花数
int a=n%10;
int b=n/10%10;
int c=n/100;
if(a*a*a+b*b*b+c*c*c==n)

三、点和面的关系
法向量是垂直屏幕的法线表示的向量
设平面法向量为{A,B,C},平面与法向量的交点为P0:(x0,y0,z0).
则平面上一点(x,y,z)与(x0,y0,z0)的向量必然与法线垂直。因此得出平面的点法式方程:
A(x-X0) + B(y-y0) + C(z-z0) = 0
将判断点坐标代入方程 满足条件 则点在平面上。
另:若方程坐标多项式>0,则在平面正面(法向量方向),反之在背面

注释:
两向量a * b  的长度为:
||a ||   *   ||b||    * sin(thta)   //thta为a与b的夹角


这样 A(x-X0) + B(y-y0) + C(z-z0) = 0  a,b垂直
     A(x-X0) + B(y-y0) + C(z-z0) > 0  a在b方向
     A(x-X0) + B(y-y0) + C(z-z0) < 0  a不在b方向
分享到:
评论
1 楼 lwz7512 2010-09-11  
这么强悍!

相关推荐

Global site tag (gtag.js) - Google Analytics