一道面试题,你的思维够发散吗?

面试归来,发现一道很有意思的题目,是考思维发散的,其实不难,我当时是考懵了,只给出最笨的方法,大家可以一起再想想还有没有其它方法。

 

题目:用C语言写一个函数,要求输入为1时,输出为2;输入为2时,输出为1.

我当时明知道以下的方法不是最好的,可是愣没有其它想法...

 

方法1:

int func(int x)

{

      if(x==1) return 2;

      else if(x==2) return 1;

 

      return 0; //if (x!=1 && x!=2 )

}

 

(后来提示:输入只有两种情况1或者2)

我改写了函数:

 

方法1‘

int func(int x)

{

      if(x==1) return 2;

      

      return 1;

}

 

经过提示,还有很多其它方法实现:

方法2:

int func(int x)

{

      return (3-x);

}

 

方法3:

int func(int x)

{

       int out[2] = {2,1};

      

       return out[x-1];    //or *(out+x-1);

}

 

.......

 

你有什么方法吗?

 

 

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值