1801 不重复的三位数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1801 不重复的三位数
Description
给定一个正整数n,则1,2,...,n这n个数字能组成多少个互不相同且无重复数字的三位数。
Input
输入一个正整数n ( 3 <= n <= 9 )。
Output
先输出三位数的个数, 然后按升序输出所有的三位数, 数据之间用一个空格隔开。
Sample Input
3
Sample Output
6 123 132 213 231 312 321
HINT
最后一个数据的后面没有空格,直接换行。
这是一个组合数问题,高中有讲过,大家应该很熟悉的。这题用比较简单的穷举法解决的。
利用三个for循环找出符合的组合。
#include
int main()
{
intn,i,j,k;
while(scanf("%d",&n)!=EOF)
{
printf("%d",n*(n-1)*(n-2));
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)//三个for循环分别找出三个数
if(i!=j&&j!=k&&k!=i)//三个不相等的数
printf(" %d",i*100+j*10+k);
//把三个数变成一个三位数输出。
printf("\n");
}
return 0;
}
谢谢大家观看--..--