题目是这样的:请设计一个函数f(n),n是int32,让f(f(n))==-n对所有n成立? 要求不允许使用复数类的运算,不限制语言。如果不存在满足整个int32的f(n),那么尽可能让它对更多int32范围的n成立。
大拿的解法是:对于任意正奇数n,构造循环表[n,n+1,-n,-n-1]。这样就把所有数划分成了不相交的表,f(x)只要返回x所在的表中x的后继元素即可。剩下4个数未解决:0, INT_MAX, INT_MIN, -INT_MAX。显然INT_MIN无解。用同样的方法可以干掉INT_MAX和-INT_MAX,代价是f(f(0))=INT_MIN。
本题在stackoverflow上面的讨论地址为http://stackoverflow.com/questions/731832/interview-question-ffn-n?answertab=oldest#tab-top
因为没有限制语言,所以我用javascript实现,思路如下:
用c记录调用次数,c%2==0,f(n)=n;c%2==1,f(n)=-n,一定能保证f(f(n))=-n;理解:调用里面的f(n)时,c为奇或偶,奇则f(n)=-n,在调用外层f时c为偶,不变输出-n;如果调用里面f(n),c为偶,则f(n)=n,当调用外层f时,c为奇,取反输出-n。
代码:
var f=(function(){ var c=0; return function(n){ var ans=(c%2==0?n:-n); c++; return ans; } })();
相关推荐
c语言面试题----main函数
上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结)...
Vue2.x和Vue3.x面试常问知识点-面试题 Vue2.x和Vue3.x面试常问知识点-面试题 Vue2.x和Vue3.x面试常问知识点-面试题 Vue2.x和Vue3.x面试常问知识点-面试题 Vue2.x和Vue3.x面试常问知识点-面试题 Vue2.x和Vue3.x面试常...
上海Linux运维工程师-面试题-个人总结).pdf上海Linux运维工程师-面试题-个人总结).pdf上海Linux运维工程师-面试题-个人总结).pdf上海Linux运维工程师-面试题-个人总结).pdf上海Linux运维工程师-面试题-个人总结).pdf...
最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列...
最新各大公司企业真实面试题-Java面试题最新各大公司企业真实面试题-Java面试题
04-Java必知必会108题01-Java公司面试真题 02-Java面试文档 03-大数据面试文档 04-Java必知必会108题01-Java公司面试真题 02-Java面试文档 03-大数据面试文档 04-Java必知必会108题01-Java公司面试真题 02-Java面试...
算法大全-面试题-链表-栈-二叉树-数据结构
c++面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试...
java面试题-50java面试题-50道最容易考的java题java面试题-50道最容易考的java题java面试题-50道最容易考的java题java面试题-50道最容易考的java题java面试题-50道最容易考的java题java面试题-50道最容易考的java题...
java面试-BIO,NIO,AIO,Netty面试题 35道 java面试-Java+最常见的+200++面试题汇总+答案总结汇总 java面试-Java并发编程最全面试题 123道 java面试-Java集合框架常见面试题 ...java面试-设计模式面试题 14道
MySql-窗口函数-面试题,很细,有函数讲解,有题干和解答
MySQL数据库高级工程师-面试题-MySQLDBA面试题03-风哥整理面试必过
Java常见面试题集--面试题全面综合
java面试题-外企软件工程师面试题大全.rarjava面试题-外企软件工程师面试题大全.rarjava面试题-外企软件工程师面试题大全.rarjava面试题-外企软件工程师面试题大全.rar
前端面试题-企业面试真题.zip前端面试题-企业面试真题.zip前端面试题-企业面试真题.zip前端面试题-企业面试真题.zip前端面试题-企业面试真题.zip前端面试题-企业面试真题.zip
算法大全-面试题-数据结构.docx
Java常见面试题集--面试题全面综合(一)
大厂面试题第一季-阿里篇-001-P7程序员面试这样解题数据库索引-1.mp4 大厂面试题第一季-阿里篇-001-P7程序员面试这样解题数据库索引-2.mp4 大厂面试题第一季-阿里篇-001-P7程序员面试这样解题数据库索引-3.mp4 大厂...
java数据结构面试题-数据结构试题全文共4页,当前为第1页。java数据结构面试题-数据结构试题全文共4页,当前为第1页。《java数据结构面试题 数据结构试题》 java数据结构面试题-数据结构试题全文共4页,当前为第1页...