标题:分机号
X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位。比如:
751,520,321 都满足要求,而,
766,918,201 就不符合要求。
现在请你计算一下,按照这样的规定,一共有多少个可用的3位分机号码?
请直接提交该数字,不要填写任何多余的内容。
//不是很难,思路就是,一个比一个小
代码如下
#include<stdio.h>
int s = 0;
int a[3];
int printff()//输出
{
int i;
s++;
for(i = 0; i < 3; i++)
printf("%d,",a[i]);
printf("\n");
}
int f(int n,int k)//递归
{
int i;
if(n == 3)
{
printff();
}
else
for(i = k; i >= 0; i--)
{
a[n] = i;
f(n + 1, i - 1);
}
}
int main()
{
f(0,9);
printf("%d",s);
}
非递归
#include<stdio.h>
int main()
{
int count = 0;
int i,j,k;
for(i = 9; i >= 0; i--)
{
for(j = i-1; j>=0; j--)
{
for(k = j - 1; k >= 0; k--)
{
printf("%3d ",count++);
printf("%d,%d,%d\n",i,j,k);
}
}
}
printf("%d",count);
}