日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

c++中求前n项和(这代码不得不让我佩服)

發(fā)布時間:2024/7/23 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++中求前n项和(这代码不得不让我佩服) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

??今天在牛客網(wǎng)上刷題,遇到了這道題,最后我看到一位大佬的代碼讓我感覺的還差很多!!!

題目

??求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關(guān)鍵字及條件判斷語句(A?B:C)。

??對于求前N 項(xiàng)和這種題我們在中學(xué)時代就已經(jīng)很熟悉了,公式有很多,像這種遞增的在數(shù)學(xué)中套公式就好:Sn = n x(n-1)/ 2 就完事了,在C++中用一個循環(huán)就可以解決了
??但是這道題目要求的是“不能使用乘除法、for、while、if、else、switch、case等關(guān)鍵字及條件判斷語句(A?B:C)”,這就要不是那么容易了
??通常都會使用按位與遞歸去寫這個程序,
思路為:

  • 需利用邏輯與的短路特性實(shí)現(xiàn)遞歸終止。
  • 當(dāng)n==0時,(n>0)&&((sum+=Sum_Solution(n-1))>0)只執(zhí)行前面的判斷,為false,然后直接返回0
  • 當(dāng)n>0時,執(zhí)行sum+=Sum_Solution(n-1),實(shí)現(xiàn)遞歸計(jì)算Sum_Solution(n)。
  • class Solution { public:int Sum_Solution(int n) {int ans=n;ans && (ans = n + Sum_Solution(n - 1));return ans;} };

    ??但是下面這位仁兄的代碼讓我感到很新奇,幾乎很少有人會想到
    這個代碼充分的將矩陣和前n項(xiàng)和的公式“n(a1+an)/2”融合

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的c++中求前n项和(这代码不得不让我佩服)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。