• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 如何求三个自然数中最小的一个?

如何求三个自然数中最小的一个?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了求自然数m的十位数字,求自然数的平方和,求17个自然数的平均数,求特殊自然数,求连续自然数的和等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:如何求三个自然数中最小的一个?
描述:

不能做任何比较操作,不能用系统内部的函数。
如何找到 α、β、γ 三个正数中最小的那个?


解决方案1:

PHP min(α、β、γ)

解决方案2:

看了上面几个答案,尤其是JS代码的那个

a ^ b = 0; //说明a = b

下面是代码:

int min(int a, int b) {
    return (a ^ (a % b)) ? b : a;
}

如果a < b,a % b 返回 a ,那么 a ^ a 的结果便是 0,函数返回 a ;
同理其他的可得。

解决方案3:

Javascript代码

for (var i = 0; ; i++) {//从0开始往大的试...
//用位操作 - 异或,如果为0则说明每位都相同,即相等,!0为true
    if (!(i ^ a) {
        alert('a:' + a);
    } else if (!(i ^ b) {
        alert('b:' + b);
    } else if (!(i ^ c) {
        alert('c:' + c);
    }
}

没测试...不知道对不对,就这思路...

想到另外一个代替比较的方法,不过貌似javascript这种弱类型语言才行,其他语言就不知道了:

    if (!((a/b)+'').indexOf('0.')) {
        alert('a比b小');
    }

a除以b后加上空字符串转为string类型,然后检查'0.'字符的位置,找不到则返回-1,取反为fasle,不在开始位置找到则大于0,取反为false,只有以'0.'开头时才会返回0,取反为true。
这种方法比开始的好多了,可以直接比较,不论有几个数,效率也很高了。

------------------------------------
好吧indexOf确实也算系统方法了。
替换一下

    var resultStr = (a/b)+'';
    if (!(resultStr[0]-0) && !(46^(resultStr[1]-0))) {
        alert('a比b小');
    }

这回真没用系统方法了,不过也确实隐含了很多系统方法...js的featrue

又写麻烦了

function _compare (a, b) {
    var resultStr = (a/b)+'';
    if (!(resultStr[0]-0)) {
        console.log('a比b小');
        return false;
    } else if (!a ^ b) {
        console.log('a和b相等');
        return true;
    } else {
        console.log('a比b大');  
        return true;  
    }
}
if (_compare(a, b)) {
    if (_compare(a, c)) {
        alert('a');
    } else {
        alert('c');
    }
} else {
    if (_compare(b, c)) {
        alert('b');
    } else {
        alert('c');
    }
}

就不用管小数点,第一位是0,肯定是0.xxx的小于1的小数。另外加上相等的判断。

解决方案4:

同用 JavaScript 实现了一个 ... 这种方法不犯规吧 ..?

<script type="text/javascript">
function smallest( a, b, c ) {
    var min = function( a, b ) {
        return b + ( ( a - b ) & ( ( a - b ) >> 31 ) );
    }
    return min( a, min( b, c ) );
}

alert( smallest( 1, 2, 3 ) );
</script>


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何求三个自然数中最小的一个?

相关文章

  • 2017-06-07 七牛云目前支持start参数吗?
  • 2017-06-07 piplist列出了所有Python版本安装的包
  • 2017-06-07 umeditor自定义参数设置
  • 2017-06-07 单纯的开发环境来说Docker和Vagrant该如何选择?
  • 2017-06-07 七牛的自定义域名设置问题,请帮忙进来看看
  • 2017-06-07 aspnetaspnet在现在网页开发中的地位?用的还多吗?
  • 2017-06-07 emu_posixh找不到
  • 2017-06-07 关于python正则表达式中函数findall的用法?
  • 2017-06-07 新手helloworld求助
  • 2017-06-07 迷茫的C++菜鸟!!

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于segmentfault的几个小问题
    • flask如何返回图片流?
    • (python)flaskweb开发这本书中,自定义错误页面无法渲染?
    • fish更改环境变量
    • (golang)如何设计用户余额
    • 七牛云存储,已经通过邮箱验证,登陆后仍然显示“未激活用户”
    • OC网络编程OC中的方法加锁
    • 七牛云存储七牛云储存max_retries:0不好用
    • Python解析XMLjunkafterdocumentelement
    • 是否七牛cdn的htmltype也没有启用gzip

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有