题目描述
所谓回文数就是左右对称的数字,比如:
585,5885,123321...
当然,单个的数字也可以算作是对称的。
小明发现了一种生成回文数的方法:
比如,取数字19,把它与自己的翻转数相加:
19 + 91 = 110,如果不是回文数,就再进行这个过程:
110 + 011 = 121 这次是回文数了。
200以内的数字中,绝大多数都可以在30步以内变成回文数,只有一个数字很特殊,就算迭代了1000次,它还是顽固地拒绝回文!
请你提交该顽固数字,不要填写任何多余的内容。
题解:
196
运行结果:
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
200 1
代码:
package com.cxyax.november.eleventh;
public class Main2 {
public static void main(String[] args) {
for(int i = 10; i <= 200; i++) {
int num = i;
int count = 0;
while(true) {
if(panduan(num)) {
System.out.println(i+" "+ count);
break;
}else {
num = fanzhaun(num);
count++;
if(count > 1000) {
System.out.println(i+" "+count);
break;
}
}
}
}
}
//判断是否为回文数字
public static boolean panduan(int num) {
String str = Integer.toString(num);
for(int i = 0; i < str.length()/2;i++) {
if(str.charAt(i) != str.charAt(str.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; //并且与原来的值相加
}
}
以上是《JAVA 蓝桥杯 国赛第六届C组 试题B:生成回文数》的全部内容,
感谢您对程序员阿鑫博客的支持!
版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!