在1到10000中的整数中有多少个整数的各个位数之和为5?
展开全部
10000的各个位数之和为1,不符合要求,所以1到10000的整数中满足各个位数之和为5的整数位数最多为4位.将1到9999中的所有整数都看成是四位数,没有的位看成是0,例如23看成是0025,221看成是0221.
5=4+1=3+2=3+1+1=2+2+1=2+1+1+1
将5分成4组,允许有空,则有5、0、0、0,4、1、0、0,3、2、0、0,3、1、1、0,2、2、1、0,2、1、1、1共6中情况.
对应到此题,所以所求个数为:
C(4,1)*1+A(4,2)*1+A(4,2)*1+C(4,1)*C(3,2)*1+C(4,2)*C(2,1)*1+C(4,1)=4+12+12+12+12+4=56.,4,#include "stdio.h"
int main()
{
int i,n,s,sum=0;
for (n =1;n<=10000;n++)
{
s=0;
for(i=n;i!=0;i/=10)
{
s+=i%10;
}
if (s==5)
{
sum++;
printf("%5d",n);
}
}
printf("n一共%d个",sum);
},0,5 14 23 32 41 50 104 113 122 131 140 203 212 221 230 302 311 320 401 410 500 1004 1013
1022 1031 1040 1103 1112 1121 1130 1202 1211 1220 1301 1310 1400 2003 2012 2021
2030 2102 2111 2120 2201 2210 2300 3002 3011 3020 3101 3110 3200 4001 4010 4100
5000,0,
5=4+1=3+2=3+1+1=2+2+1=2+1+1+1
将5分成4组,允许有空,则有5、0、0、0,4、1、0、0,3、2、0、0,3、1、1、0,2、2、1、0,2、1、1、1共6中情况.
对应到此题,所以所求个数为:
C(4,1)*1+A(4,2)*1+A(4,2)*1+C(4,1)*C(3,2)*1+C(4,2)*C(2,1)*1+C(4,1)=4+12+12+12+12+4=56.,4,#include "stdio.h"
int main()
{
int i,n,s,sum=0;
for (n =1;n<=10000;n++)
{
s=0;
for(i=n;i!=0;i/=10)
{
s+=i%10;
}
if (s==5)
{
sum++;
printf("%5d",n);
}
}
printf("n一共%d个",sum);
},0,5 14 23 32 41 50 104 113 122 131 140 203 212 221 230 302 311 320 401 410 500 1004 1013
1022 1031 1040 1103 1112 1121 1130 1202 1211 1220 1301 1310 1400 2003 2012 2021
2030 2102 2111 2120 2201 2210 2300 3002 3011 3020 3101 3110 3200 4001 4010 4100
5000,0,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询