解题思路:
注意事项:用递归给数字一位一位赋值
参考代码:
#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 人评分
WU-输出九九乘法表 (C++代码)浏览:1669 |
用筛法求之N内的素数。 (C++代码)浏览:692 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:557 |
简单的a+b (C语言代码)浏览:415 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:407 |
printf基础练习2 (C语言代码)浏览:503 |
图形输出 (C语言代码)浏览:940 |
简单的a+b (C语言代码)浏览:582 |
1005答案错误为什么浏览:1975 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:643 |