gcd.scala

object gcd{
  def main(args:Array[String]){
    println( gcd1(args(0).toInt,args(1).toInt))
    println( gcd2(args(0).toInt,args(1).toInt))
  }
  def gcd1(x:Int,y:Int):Int={
    var a=x
    var b=y
    while(a!=0){
      var temp=a
      a=b%a
      b=temp
    }
    b
  }
  def gcd2(x:Int,y:Int):Int={
    if(x==0) y
    else gcd2(y%x,x)
  }
}

$ scalac gcd.scala

$ scala gcd 12 21

$ scala gcd 21 12

gcd1采用迭代,gcd2 采用递归,gcd1和gcd2基本上已经做到最简.

为了方便记忆,用下图表示思考过程:

最新文章

  1. MQTT开发笔记之《安全传输-自问自答》
  2. JSON 和 XML 优缺点的比较
  3. spring security 图解过滤器的使用
  4. Android Keycode详解
  5. Django中的分页
  6. AJAX实现仿Google Suggest效果
  7. 配置nginx的负载均衡
  8. 通过 ANE(Adobe Native Extension) 启动Andriod服务 推送消息(一)
  9. [Leetcode][048] Rotate Image 略详细 (Java)
  10. Codeforces round #353div2 C
  11. mysql copy复制拷贝表数据及结构的几种方式(转)
  12. springMVC源码分析--HandlerInterceptor拦截器调用过程(二)
  13. PyCharm设置仿sublime配色__Py版本2018.3.5
  14. Vue源码学习(一)———数据双向绑定 Observer
  15. Hadoop-2.3.0的Eclipse插件编译
  16. 随机森林(Random Forest),决策树,bagging, boosting(Adaptive Boosting,GBDT)
  17. [整]Android开发优化-布局优化
  18. kickstart命令选项
  19. mongo嗅探器mongosniff
  20. Floyd求字典序最小的路径

热门文章

  1. JS-运动基础(一)续
  2. http://www.iteye.com/job/topic/1133159
  3. 动态规划之----我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
  4. HDU 5480 Conturbatio
  5. MoQ(基于.net3.5,c#3.0的mock框架)简单介绍
  6. 业务零影响!如何在Online环境中巧用MySQL传统复制技术【转】
  7. test命令
  8. C#入门经典(第五章-2)字符串的处理
  9. 货物搬运(move)
  10. iptables-过滤61开头的ip数据包