统计
  • 建站日期:2019-12-01
  • 文章总数:2002 篇
  • 评论总数:2124 条
  • 分类总数:21 个
  • 最后更新:11月21日
文章 未分类

JAVA 蓝桥杯 国赛第六届C组 试题B:生成回文数

程序员阿鑫
首页 未分类 正文


JAVA蓝桥杯国赛第六届C组试题B:生成回文数
-程序员阿鑫-带你一起秃头
-第1
张图片

题目描述

所谓回文数就是左右对称的数字,比如:
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)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
这篇文章最后更新于2020-11-13,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
Java 第十一届蓝桥杯国赛 C组 题目 文字版
« 上一篇
JAVA 蓝桥杯 国赛第六届C组 试题A:机器人数目
下一篇 »

发表评论