0到9组成多少个无重复的3位数?用c程序解答!

有0,1,2,3,4,5,6,7,8,9这10个数,能组成多少个互不相同且无重复的三位数?都是多少?

第1个回答  2010-06-21
就是列举所有的三位数嘛。100 到 999。都列出来就行了。

-----

还是说每个数字不能相同?也就是最小的数是102?
那也简单,三个格子,往里面填数就行了。 百位(i): 1到9,十位(j): 0到9(但是不能填百位已经填了的数),个位(k): 0到9(但是不能填百位和十位已经填了的数)。
用visited来表示已经被填了的数。
代码如下:

#include <stdio.h>

int main()
{
bool visited[10] = {false};
int num_total = 0;

for (int i = 1; i < 10; ++i)
{
visited[i] = true;
for (int j = 0; j < 10; ++j)
{
if (visited[j]) continue;
visited[j] = true;
for (int k = 0; k < 10; ++k)
{
if (visited[k]) continue;
++num_total;
printf ("%d%d%d\n", i, j, k);
}
visited[j] = false;
}
visited[i] = false;
}

printf("Total: %d\n", num_total);
return 0;
}
第2个回答  推荐于2016-10-20
/*写个for嵌套的*/
#include<stdio.h>
void main()
{
int i,j,k,count=0;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if(i!=j&&i!=k&&j!=k)
{
printf("%d%d%d ",i,j,k);
count++;
}
printf("\nTotal is : %d",count);
getch();
}本回答被提问者采纳
第3个回答  2019-01-09
/*写个for嵌套的*/
#include<stdio.h>
void
main()
{
int
i,j,k,count=0;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if(i!=j&&i!=k&&j!=k)
{
printf("%d%d%d
",i,j,k);
count++;
}
printf("\nTotal
is
:
%d",count);
getch();
}
相似回答