说明:
本栏目来自《C语言经典100题》,由于本文最近学习python编程。考虑到在复习C语言的基础上,学习python,两者皆不误!顺道还能发现一些两种语言的不同!
希望自己能坚持下去!
编程水平优化,目前只考虑实现问题,没有顾及程序的优化问题!欢迎大牛们赐教
by songpl, 2018.11.25,15:01
题目:有“1,2,3,4”这四个数组,能组成多少个互不相同且无重复的三位数,都是多少?
分析:
需要三个嵌套循环(遍历1,2,3,4);
加一个判断(无重复)
c语言代码实现:
#include<stdio.h>
void main()
{
int i, j, k, a[100], n = 0;
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= 4; j++)
{
for (k = 1; k <= 4; k++)
{
if (i != j&&i != k&&j != k)//判断三个数互不相同
{
a[n] = i * 100 + j * 10 + k;
n++;
}
}
}
}
printf("能组成%d个互不相同且无重复的三位数", n);
for (i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
运行结果:
能组成24个互不相同且无重复的三位数
123 124 132 134 142 143 213 214 231 234 241 243 312 314 321 324 341 342 412 413 421 423 431 432
请按任意键继续. . .
python语言实现代码:
n=0
a={}
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if (i!=j)and(i!=k)and(j!=k):
n=n+1
a[n] = i*100+j*10+k
print('能组成互不相同且无重复的三位数的个数是:',n)
print("分别是:",a)
运行结果:
能组成互不相同且无重复的三位数的个数是: 24
分别是: {1: 123, 2: 124, 3: 132, 4: 134, 5: 142, 6: 143, 7: 213, 8: 214, 9: 231, 10: 234, 11: 241, 12: 243, 13: 312, 14: 314, 15: 321, 16: 324, 17: 341, 18: 342, 19: 412, 20: 413, 21: 421, 22: 423, 23: 431, 24: 432}
★finished by songpl,2018.11.26