1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 int main() 5 { 6 int a[9]={1,2,3,4,5,6,7,8,9},b,c,d; 7 while(next_permutation(a,a+9)) 8 { 9 b=a[0]*100+a[1]*10+a[2]; 10 c=a[3]*100+a[4]*10+a[5]; 11 d=a[6]*100+a[7]*10+a[8]; 12 if(b+c==d&&b<=c) 13 { 14 cout<<b<<‘ ‘<<c<<‘ ‘<<d<<endl; 15 } 16 } 17 return 0; 18 }
注:b>c时 break 并不正确,231 987 654 的下一个排列 234 156 789 就终止循环了,显然不正确。
原文:http://www.cnblogs.com/haveyoueverbeen/p/4471786.html