题目
Python实现:有四个数字1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
分析
思想:思路比较容易,只需要逐个遍历。遍历的时候注意十位数字不能与百位数字相同,各位数字不能与前两者相同即可。
Python:思路虽然如此,涉及到具体实现时,有所不同。Python的思路可以是将数字建成一个列表,然后依次弹出,为了保证数字不会重复,可以将弹出后所剩的列表在后面遍历使用,这样就可以有效避免数字重复。举个例子,百位将数字1弹出,然后只剩下2,3,4了,再将剩余的2,3,4用于十位数字的获取,就不会和百位重复了。个位也是如此。但是需要注意的是由于百位也是循环使用的,因此不要操作原列表,复制一个处理就好。python的实现代码如代码1所示。
C++:C++的想法就很简单了,只需要逐个取出数字,然后对比。好久没写C++了,竟然连头文件怎么写的……深感汗颜,自己都笑了
itertools:在网上兜了一圈,看到惊为天人的代码,只