特殊回文数

装载请注明出处: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 }

 

posted @ 2018-02-02 19:16  nefuer  阅读(129)  评论(0)    收藏  举报