Swift-求1+2+…+n,要求不能使用乘除法、for、while、if、else...

题目:求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C).
经典解法,通过表达式来实现:
<pre><code>`
var sum:Int = 0;
n > 0 && (sum = n + sumNumber(n - 1))
return sum

  var sum:Int = 0;
  n == 0 || (sum = n + sumNumber(n - 1))
  return sum`<code></pre>

不过Swift不支持表达式的是解析,通过guard来实现:
<pre><code>`
func sumNumber(n:Int)->Int {

    guard n > 0 else {
        return 0
    }
    return  n + sumNumber(n: n-1)
}`</code></pre>

测试代码:
<pre><code>var speSum:Sum = Sum() var speMax:Int = 100 var speResult:Int = speSum.sumNumber(n: speMax) print("1+..+\(speMax)和---\(speResult)")</code></pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容