已知三个数的和(每一位数的取值范围为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种),求一个算法能快速得到有多少种可能。。。 展开
 我来答
xuzhouliuying
高粉答主

2017-03-06 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.4亿
展开全部

这个没有一定的公式。可以通过C语言编程解决,不过需要针对具体的数。

代码如下:

#include <stdio.h>

void main()

{

int i,j,k,m,n=0;

printf("请输入一个自然数:  ");

scanf("%d",&m);

for(i=0;i<=m;i++)

for(j=0;j<=m;j++)

for(k=0;k<=m;k++)

if(i+j+k==m) n++;

if(m==0) printf("共有1种组合的可能。");

else if(m%3==0)

printf("共有%d种组合的可能。",n-2);

else printf("共有%d种组合的可能。",n);

}

运行示例:

尹六六老师
2017-03-06 · 知道合伙人教育行家
尹六六老师
知道合伙人教育行家
采纳数:33774 获赞数:147217
百强高中数学竞赛教练, 大学教案评比第一名, 最受学生欢迎教

向TA提问 私信TA
展开全部
这个要用到“母函数”,
具体原理就不解释了,
下面给出速查公式。
记和为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,收下我的膝盖。。以后还有别的算法问题能不能求助你?
追答
可以,尽管提问,然后提醒我查看你的空间
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旅初彤2B
2017-03-06 · TA获得超过2.6万个赞
知道大有可为答主
回答量:4.4万
采纳率:65%
帮助的人:5207万
展开全部
用什么语言实现?
更多追问追答
追问
c#、js、java、c++、as都行。

不过尽量别用三层嵌套循环吧
追答
这个就没有办法了,不使用三层嵌套不太好做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ffyfygugy
2017-03-06
知道答主
回答量:11
采纳率:0%
帮助的人:1.1万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式