百度空间 | 百度首页 
               
 
查看文章
 
google笔试第12题的小程序
2007-01-30 09:17

/********google小问题程序******/
/********作者:xiaocui*********/
/********时间:2007.1.29******/
/********版本:v1.0***********/

#include <iostream>
#include <vector>
using namespace std;

/****找出不是最大乘积组中的那个元素序号****/
int  find_index (const vector<int> &ivec)
{
 int  mul = 1;
 for(int i=0; i<ivec.size(); ++i)
 {
  mul = mul *ivec[i];
 }
 
 int  index;  //返回值
 
 //如果mul为正数
 if ( mul > 0 )
 {
  //记录最小正数的序号
     int positive_index = -1;
     //记录最小负数的序号
     int minus_index = -1;
  
     //记录最小的正数
     int  positive_num = 10000;
     //记录最小的负数
     int  minus_num = 10000;
  
  for(int i=0; i<ivec.size(); ++i)
  {
   if( ivec[i]>0 )
   {
    if(ivec[i]<positive_num)
    {
     positive_num = ivec[i];
     positive_index = i;
    }
   }
   
   if ( positive_index==-1 && ivec[i] <0 )
   {
    if ( ivec[i]<minus_num)
    {
     minus_num = ivec[i];
     minus_index = i;
    }
   }
  }
  
  if(positive_index!=-1)
  {
   index = positive_index;
  }
  else
  {
   index = minus_index;
  }
 }
 //如果mul为负数
 else if ( mul<0 )
 {
  //记录最大的负数的序号
  int positive_index = -1;
  //记录最大的正数的序号
  int minus_index = -1;
  //记录最大的负数
  int positive_num = -10000;
  //记录最大的正数
  int minus_num = -10000;
  
  for(int i=0; i<ivec.size(); ++i)
  {
   if ( ivec[i]<0 )
   {
    if(ivec[i]>minus_num)
    {
     minus_num = ivec[i];
     minus_index =i;
    }
   }
   
   if (minus_index==-1 && ivec[i]>0)
   {
    if(ivec[i]>positive_num)
    {
     positive_num = ivec[i];
     positive_index =i;
    }
   }
  }
  
  if ( minus_index!=-1)
  {
   index = minus_index;
  }
  else
  {
   index = positive_index;
  }
 }
 //如果mul为0
 else if (mul==0)
 {
  //针对0的处理(判断0的个数是否超过2)
 }
 
 return index;
}  

int main()
{
 cout <<"请输入数字序列的个数: ";
 int n;
 cin >>n;
 cout <<"请输入数字序列: ";
 vector<int> ivec;
 for(int i=0; i<n; ++i)
 {
  int tmp;
  cin >>tmp;
  ivec.push_back(tmp);
 }
 
 cout <<"拥有最大乘积的一组元素是: ";
 for(int i=0; i<n; ++i)
 {
  if( i!= find_index(ivec) )
  {
   cout <<ivec[i]<<" ";
  }
 }
 cout <<endl;
 return 0;
}
 

 


类别:算法与数据结构 | 添加到搜藏 | 浏览() | 评论 (3)
 
最近读者:
 
网友评论:
1
2007-04-26 12:51 | 回复
可以给题目我吗?非常感谢 !
 
2
2008-04-08 20:45 | 回复
题目??
 
3
2008-11-20 19:17 | 回复
強,俺吃不透,有空多來看看!
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu