解题思路:
注意事项:用递归给数字一位一位赋值
参考代码:
#include<stdio.h>
int shul=0;
void pd(int n,int k,int num)
{
int i,j,numz,zeronum=0,pds;
pds=num%10; //关键:通过下面4部可以判断下一位是否应该为0,也就是将数字含2为0以上的数字直接排除
num*=10; //比如 4位数110当给第4位赋值的时候,就会从1开始。直接排除0
if(pds==0){i=1;}
else{i=0;}
if(n>0)
{
for(;i<k;i++)
{
numz=num;
numz+=i;
pd(n-1,k,numz);
}
}
else{shul+=k;shul-=i;}
}
void main()
{
int n,k,i;
scanf("%d%d",&n,&k);
for(i=1;i<k;i++)
{
pd(n-2,k,i);
}
printf("%d",shul);
}
0.0分
0 人评分
C语言考试练习题_保留字母 (C语言代码)浏览:561 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:850 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:624 |
C二级辅导-阶乘数列 (C语言代码)浏览:688 |
【魔板】 (C++代码)(时间超限,希望会的帮我改正一下)浏览:738 |
用筛法求之N内的素数。 (C语言代码)浏览:664 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:504 |
图形输出 (C语言代码)浏览:1375 |
循环入门练习6 (C语言代码)浏览:953 |
Hello, world! (C语言代码)浏览:808 |