解题思路:
注意事项:用递归给数字一位一位赋值
参考代码:
#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语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:651 |
核桃的数量 (C语言代码)浏览:893 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:756 |
交换Easy (C语言代码)浏览:805 |
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:587 |
数列有序 (C语言代码)浏览:974 |
C语言程序设计教程(第三版)课后习题9.1 (C语言代码)浏览:653 |
【魔板】 (C++代码)浏览:1236 |
C二级辅导-公约公倍 (C语言代码)浏览:693 |
C语言训练-求PI* (C语言代码)浏览:514 |