已知三个数的和(每一位数的取值范围为0-9),求有多少种组合的可能。
比如和为1,则可能为001,010,100(3种)。为2的时候可能是002,011,020,200,101,110(6种),又比如是27则只可能是999(1种),求一个算...
比如和为1,则可能为0 0 1,0 1 0,1 0 0(3种)。为2的时候可能是0 0 2,0 1 1,0 2 0,2 0 0,1 0 1,1 1 0(6种),又比如是27则只可能是9 9 9(1种),求一个算法能快速得到有多少种可能。。。
展开
4个回答
2017-03-06 · 知道合伙人教育行家
关注
展开全部
这个要用到“母函数”,
具体原理就不解释了,
下面给出速查公式。
记和为n的方法有an种,则
(1)1≤n≤9
an=(n+1)×(n+2)÷2
(2)10≤n≤19
an=(n+1)×(n+2)÷2-3×(n-9)×(n-8)÷2
或者,
an=3+(n-5)×(22-n)
(3)20≤n≤27
an=(n+1)×(n+2)÷2-3×(n-9)×(n-8)÷2
+3×(n-19)×(n-18)÷2
或者,
an=(28-n)×(29-n)÷2
具体原理就不解释了,
下面给出速查公式。
记和为n的方法有an种,则
(1)1≤n≤9
an=(n+1)×(n+2)÷2
(2)10≤n≤19
an=(n+1)×(n+2)÷2-3×(n-9)×(n-8)÷2
或者,
an=3+(n-5)×(22-n)
(3)20≤n≤27
an=(n+1)×(n+2)÷2-3×(n-9)×(n-8)÷2
+3×(n-19)×(n-18)÷2
或者,
an=(28-n)×(29-n)÷2
追问
66666,收下我的膝盖。。以后还有别的算法问题能不能求助你?
追答
可以,尽管提问,然后提醒我查看你的空间
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用什么语言实现?
更多追问追答
追问
c#、js、java、c++、as都行。
不过尽量别用三层嵌套循环吧
追答
这个就没有办法了,不使用三层嵌套不太好做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询