装载请注明出处:http://www.cnblogs.com/zhishoumuguinian/p/8406801.html
思路:我们不用把所有的五位数和六位数都遍历,通过观察发现,数的左侧和右侧是对称的,因此,我们只需求出三个数。但是,这个题气人的地方是需要五位数六位数分开求。接下来粘上代码。
1 #include<bits/stdc++.h> 2 #include <string> 3 using namespace std; 4 5 int main() 6 { 7 int n; 8 cin>>n; 9 int flag=0; 10 for(int i=1; i<=9; i++) 11 for(int j=0; j<=9; j++) 12 for(int k=0; k<=9; k++) 13 { 14 15 if((2*i+2*j+k)==n) 16 { 17 cout<<i<<j<<k<<j<<i<<endl; 18 } 19 } 20 for(int i=1; i<=9; i++) 21 for(int j=0; j<=9; j++) 22 for(int k=0; k<=9; k++) 23 { 24 25 if((2*i+2*j+2*k)==n) 26 { 27 cout<<i<<j<<k<<k<<j<<i<<endl; 28 } 29 } 30 return 0; 31 }