前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Math对象面试题目

Math对象面试题目

作者头像
HTML5学堂
发布2018-03-12 11:58:28
4760
发布2018-03-12 11:58:28
举报
文章被收录于专栏:HTML5学堂HTML5学堂

HTML5学堂:JavaScript的Math对象的命令虽然简单,但是逻辑性要求比较高,它可以辅助开发者实现一些JavaScript复杂效果,这就要求大家有一定的逻辑思维了。今天要给大家分享Math对象比较奇葩的题目。

Math对象面试题目

只允许使用 + - * / 和 Math.* ,求一个函数 y = f(x, a, b);当x > 100 时返回 a 的值,否则返回 b 的值,不能使用 if else 等条件语句,也不能使用|,?:,数组(本题目来源于互联网)

剖析题目

f函数返回值的情况如下:

x < 100 返回值为a

x == 100 返回值为b

x > 100 返回值为b

该题目我们可以从x > 100和x <= 100入手,考虑如何判断X的大小?当然我们可以先判断X等于100的时候。

代码语言:javascript
复制
if (x == 100) {
    return b;
};

那现在我们只差x小于和大于100的情况了,该如何判断呢?一般涉及到判断,大家可能会想到转换成0和1,这样就比较好判断了。

我们可以这么来想,如果比100小的是0

代码语言:javascript
复制
Math.max(x - 100, 0)

如果比100大的是1

代码语言:javascript
复制
Math.ceil(Math.min(Math.max(x - 100, 0), 1))

完整的参考答案

代码语言:javascript
复制
function f(x, a, b) {
    var temp = Math.ceil(Math.min(Math.max(x - 100, 0), 1));
 
    return a * temp + b * (1 - temp);
}
console.log(f(-10, 1, 2));
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 懂点君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Math对象面试题目
  • 剖析题目
    • f函数返回值的情况如下:
    • 完整的参考答案
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档