标题:生成回文数
所谓回文数就是左右对称的数字,比如:
585,5885,123321...
当然,单个的数字也可以算作是对称的。
小明发现了一种生成回文数的方法:
比如,取数字19,把它与自己的翻转数相加:
19 + 91 = 110,如果不是回文数,就再进行这个过程:
110 + 011 = 121 这次是回文数了。
200以内的数字中,绝大多数都可以在30步以内变成回文数,只有一个数字很特殊,就算迭代了1000次,它还是顽固地拒绝回文!
请你提交该顽固数字,不要填写任何多余的内容。
代码如下:
package juesai02;
public class Main {
//判断一个数是否为回文数
public static boolean panduan(int s){
String string = Integer.toString(s); //int 转化为 String
for(int i=0;i<string.length()/2;i++){
if(string.charAt(i)!=string.charAt(string.length()-i-1)){ //比较前一个与后一个
return false;
}
}
return true;
}
//把一个数进行翻转
public static int fanzhaun(int s){
int sum = 0;
int t = s; //先保存原来的值
while (s!=0){
int temp = s%10;
sum = sum*10 + temp; //先升一位,再加
s /= 10;
}
return sum + t; //并且与原来的值相加
}
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0;i<200;i++){
int temp = i;
int cnt = 0;
while(true){
boolean flag = panduan(temp);
if(flag==false){ //不是回文数
temp = fanzhaun(temp);
cnt++;
if(cnt>500){
System.out.println(i);
break;
}
}else{ //回文数
System.out.println(i+" "+cnt);
break;
}
}
}
}
}
结果:(发现没有大于1000)
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 1
11 0
12 1
13 1
14 1
15 1
16 1
17 1
18 1
19 2
20 1
21 1
22 0
23 1
24 1
25 1
26 1
27 1
28 2
29 1
30 1
31 1
32 1
33 0
34 1
35 1
36 1
37 2
38 1
39 2
40 1
41 1
42 1
43 1
44 0
45 1
46 2
47 1
48 2
49 2
50 1
51 1
52 1
53 1
54 1
55 0
56 1
57 2
58 2
59 3
60 1
61 1
62 1
63 1
64 2
65 1
66 0
67 2
68 3
69 4
70 1
71 1
72 1
73 2
74 1
75 2
76 2
77 0
78 4
79 6
80 1
81 1
82 2
83 1
84 2
85 2
86 3
87 4
88 0
89 164
90 1
91 2
92 1
93 2
94 2
95 3
96 4
97 6
98 164
99 0
100 1
101 0
102 1
103 1
104 1
105 1
106 1
107 1
108 1
109 2
110 1
111 0
112 1
113 1
114 1
115 1
116 1
117 1
118 1
119 2
120 1
121 0
122 1
123 1
124 1
125 1
126 1
127 1
128 1
129 2
130 1
131 0
132 1
133 1
134 1
135 1
136 1
137 1
138 1
139 2
140 1
141 0
142 1
143 1
144 1
145 1
146 1
147 1
148 1
149 2
150 2
151 0
152 2
153 2
154 2
155 3
156 3
157 3
158 3
159 2
160 2
161 0
162 2
163 2
164 3
165 3
166 5
167 11
168 3
169 2
170 2
171 0
172 2
173 2
174 4
175 4
176 5
177 45
178 3
179 2
180 3
181 0
182 6
183 4
184 3
185 3
186 3
187 163
188 7
189 2
190 7
191 0
192 4
193 8
194 3
195 4
196 286
197 7
198 5
199 3