LoveSi

自处超然,处人蔼然,无事澄然,遇事斩然,得意淡然,失意泰然

常用链接

统计

最新评论

诺西笔试题目

1.统计1 个word(32bit)里面的1的bit数;
      
int count_1(int word)
{
        
int num = 0;

    
while (word > 0{
        num
++;
        word 
= word & (word - 1);
    }


    
return num;
}


int main()
{
    
int word = 1200;
    
int num = count_1(word);
    
    
return 0;
}
2. strcpy的实现
char *strcpy(char *dest, const char *src)
{
    
if (dest == NULL || src == NULL)
        
return NULL;
    
if (dest == src)
        
return dest;
    
char *destCpy = dest;
    
while((*dest++ = *src++!= '\0')
        ;
    
return destCpy;
}

3.找出因子只有2,3,5的第1500个数,如1,2,3,4,5,6,8,9,10为满足条件的数,设计有效算法
  满足这个条件的数据都应该满足v = 2^x * 3^y * 5^z, 从http://blog.csdn.net/wwd252/archive/2008/09/04/2882645.aspx看到了算法,借鉴一下
   
#include <stdio.h>
#include 
<iostream>
using std::cout;
#define   N   1500   


int   main()   
{   
    
long  result[N];   
    
int   p2, p3, p5;   
    
int   i;   
    result[
0= 1;   
    p2 
= p3 = p5 = 0;

    
for(i = 1; i < N; ++i){   
        
int min;   
        min 
= result[p2] * 2;   
        
if(min > result[p3] * 3)
            min 
= result[p3] * 3;   
        
if(min > result[p5] * 5)
            min 
= result[p5] * 5;  
        result[i] 
= min;  


        
if(result[p2] * 2 <= result[i])
            p2
++;   
        
if(result[p3] * 3 <= result[i])
            p3
++;   
        
if(result[p5] * 5 <= result[i])
            p5
++;   
    }
   
    cout
<<result[N- 1]; 
}

这道题我觉着关键就是设立一个机制,判断哪个指数加1。

   

posted on 2010-10-07 22:51 LoveSi 阅读(1163) 评论(3)  编辑 收藏 引用 所属分类: 面/笔试

评论

# re: 诺西笔试题目 2010-10-08 10:30 xiao xu

代码写的很漂亮啊  回复  更多评论   

# re: 诺西笔试题目 2010-10-08 10:47 LoveSi

哈哈,谢谢夸奖!继续努力!@xiao xu
  回复  更多评论   

# re: 诺西笔试题目 2010-12-02 15:15 sang

浙大的?  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理