[C++]2-6 排列
/* 排列(Permutation) 用1,2,3,...,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi = 1:2:3。 按照"abc def ghi"的格式输出所有解。每行一个解。提示:不必太动脑筋。 分析: 全排列 对于next_permutation函数,其函数原型为: #include <algorithm> bool next_permutation(iterator start,iterator end) 当前序列不存在下一个排列时,函数返回false,否则返回true 此外,next_permutation(node,node+n,cmp)可以对结构体num按照自定义的排序方式cmp进行排序。 */ #include <iostream> #include <algorithm> using namespace std; int main() { int nums[9] = {1,2,3,4,5,6,7,8,9}; int abc,def,ghi; do{ abc = nums[0]*100 + nums[1]*10 + nums[2]; def = nums[3]*100 + nums[4]*10 + nums[5]; ghi = nums[6]*100 + nums[7]*10 + nums[8]; if((ghi == 3*abc) && (def == 2*abc)){ printf("%d%d%d %d%d%d %d%d%d\n", nums[0], nums[1], nums[2], nums[3], nums[4], nums[5], nums[6], nums[7], nums[8]); } }while(next_permutation( nums, nums + 9)); return 0; }
【参考文献】
1.刘汝佳.算法竞赛入门经典
![QQ沟通交流群](https://blog-static.cnblogs.com/files/johnnyzen/cnblogs-qq-group-qrcode.gif?t=1679679148)
本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!