x+2y+3z=n的非负整数解数
生活随笔
收集整理的這篇文章主要介紹了
x+2y+3z=n的非负整数解数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目:給一個正整數(shù)n,范圍是[1,10^6],對于方程:x+2y+3z = n,其中x,y,z為非負整數(shù),求有多少個這樣的三元組
(x,y,z)滿足此等式。
?
分析:先看x+2y=m,很明顯這個等式的非負整數(shù)解數(shù)目為m/2 + 1,然后再看x+2y+3z = n,設(shè)k=n/3,那么它的解數(shù)目為:
ans = n/2+1+(n-3)/2+1+...+(n-3k)/2+1
?
所以就有:
LL Work(int n) {LL ans = 0;for(int i=0;i<=n/3;i++)ans += (n - 3*i)/2 + 1;return ans; }
進一步優(yōu)化,我們不使用循環(huán),直接合并,得到:
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/james1207/p/3354312.html
總結(jié)
以上是生活随笔為你收集整理的x+2y+3z=n的非负整数解数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转载]秀脱linux实战笔记linux
- 下一篇: 大学生学业指导类书目