题目是这样的:请设计一个函数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; } })();
相关推荐
上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结)...
python面试题-2023(面试).docxpython面试题-2023(面试).docxpython面试题-2023(面试).docxpython面试题-2023(面试).docxpython面试题-2023(面试).docxpython面试题-2023(面试).docxpython面试题-2023(面试)....
### C语言面试题:Main函数详解 #### 题目背景 在C语言编程中,`main`函数是每个程序的入口点。正确理解和编写`main`函数对于编写高质量、可移植性强的程序至关重要。本篇文章将深入探讨C语言中的`main`函数,包括...
性能测试面试题宝典--覆盖大部分性能专项面试题性能测试面试题宝典--覆盖大部分性能专项面试题性能测试面试题宝典--覆盖大部分性能专项面试题性能测试面试题宝典--覆盖大部分性能专项面试题性能测试面试题宝典--覆盖...
04-Java必知必会108题01-Java公司面试真题 02-Java面试文档 03-大数据面试文档 04-Java必知必会108题01-Java公司面试真题 02-Java面试文档 03-大数据面试文档 04-Java必知必会108题01-Java公司面试真题 02-Java面试...
"Java 面试题及其答案.doc"和"JAVA面试题.doc"提供了大量的面试题及解答,涵盖了从基础知识到高级特性的广泛范围,包括反射、注解、设计模式、Spring框架、数据库操作等。通过这些题目,求职者可以自我评估,了解...
java面试-BIO,NIO,AIO,Netty面试题 35道 java面试-Java+最常见的+200++面试题汇总+答案总结汇总 java面试-Java并发编程最全面试题 123道 java面试-Java集合框架常见面试题 ...java面试-设计模式面试题 14道
本文档提供了一系列C++面试题,涵盖了内存拷贝、双向链表、费波那其数列、类的构造函数、析构函数和赋值函数、循环、单向链表类的实现、二叉树实现等多个方面的知识点。 内存拷贝 面试题:写一个函数,完成内存...
大厂面试题第一季-阿里篇-001-P7程序员面试这样解题数据库索引-1.mp4 大厂面试题第一季-阿里篇-001-P7程序员面试这样解题数据库索引-2.mp4 大厂面试题第一季-阿里篇-001-P7程序员面试这样解题数据库索引-3.mp4 大厂...
fpga笔试面试题解答-集成电路-笔试题-面试题
在面试题中,getNSString函数返回了一个临时的NSString对象,该对象在函数返回后被自动释放,因此外部使用这个指针的代码可能会遇到未定义行为。这个面试题主要考察应聘者对Objective-C内存管理的理解。 4. 关于预...
### C++面试试题详解:拷贝构造函数 #### 背景介绍 在C++编程中,拷贝构造函数是一个非常重要的概念,尤其对于那些处理复杂数据结构或资源管理的程序来说更是如此。拷贝构造函数是类的一种特殊成员函数,用于创建一...
web前端面试题-面试题答案
java程序员面试题150例 java常见面试题 java工程师面试题 java面试题大全 带搜索功能,能非常方便的查找到你想要了解的 java面试题目 推荐大家下载。
在链表的操作中,还有其他一些常见问题,如查找链表的倒数第N个节点、链表的中间节点、删除链表中的节点等。这些操作都需要对链表的结构有深入的理解,才能高效地实现。 单链表的特殊问题还包括链表是否有环以及...
WEB-面试题-第三阶段面试真题 这个资源是关于WEB面试的第三阶段面试真题,涵盖了JavaScript高级知识点,包括构造函数、this指向、函数调用、闭包、setTimeout、apply等方面。下面是对每个问题的详细说明: 1. 构造...
JavaScript是Web开发中不可或缺的一部分,尤其在面试时,掌握这些基本和高级概念至关重要。下面将逐一解析提供的面试题目,帮助你更好地理解JavaScript的核心概念。 1. 求y和z的值是多少? 在这个例子中,两个`add`...
### hadoop2面试题 - 2012腾讯笔试的一道算法题 #### 背景与题目概述 本文档提供了2012年腾讯笔试中一道关于字符串处理的算法题,该题目要求将字符串中的所有大写字母移动到字符串的末尾,同时保持其他字符的相对...
java数据库面试题--个人专用java数据库面试题--个人专用java数据库面试题--个人专用java数据库面试题--个人专用java数据库面试题--个人专用java数据库面试题--个人专用
谷歌面试题解析 本资源摘要信息中,我们将对谷歌面试题进行详细的解析和...本资源摘要信息中,我们总结了谷歌面试题中的知识点,包括数据库基本操作、窗口函数、SQL语句优化、数据分析和数据库设计等方面的知识点。