题解 | #[NOIP1999]回文数#

[NOIP1999]回文数

https://www.nowcoder.com/practice/a432eb24b3534c27bdd1377869886ebb

import java.util.Scanner;
// 直接对应的进制进行相加,我一开始转成10进制后在加的,之前没有看清楚题目
public class Main {
    // 获取数的倒数(倒过来排序的数)
    public static String getPalindrome(String s) {
        String ss = "";
        for (int i = s.length() - 1; i >= 0; i--) {
            ss += s.charAt(i);
        }
        return ss;
    }
    // 判断是否为回文数
    public static boolean isPalindrome(String s) {
        int length = s.length();
        for (int i = 0; i <= length / 2; i++) {
            if (s.charAt(i) != s.charAt(length - 1 - i)) {
                return false;
            }
        }
        return true;
    }
       // 进制相加
    public static String add(String s1, String s2, int radix) {
        String ss = "0123456789ABCDEF";
        int count = 0;
        StringBuffer sb = new StringBuffer();
        for (int i = s1.length() - 1; i >= 0; i--) {
            int i1 = ss.indexOf(s1.charAt(i) + "");
            int i2 = ss.indexOf(s2.charAt(i) + "");
            int result = (i1 + i2 + count) % radix;
            count = (i1 + i2 + count) / radix;
            sb.insert(0, ss.charAt(result));
            if (i == 0 && count == 1) {
                sb.insert(0, "1");
            }
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int radix = Integer.valueOf(sc.nextLine());
        String value = sc.nextLine();
        // 进制数
//        System.out.println(value);
//        System.out.println(radix);
        int n = 0; // 加的次数
        while (n <= 30) {
            // 判断是否为回文数
            if (isPalindrome(value)) {
                break;
            }
            n++;
            value = add(value, getPalindrome(value), radix);
//             System.out.println(n + ":" + value);
        }
        if (n > 30) {
            System.out.print("Impossible!");
        } else {
            System.out.print("STEP=" + n);
        }

    }
}
    

全部评论
天才兄弟
点赞 回复 分享
发布于 2023-09-22 11:50 江苏
这个ss字符串的设置太精妙了
点赞 回复 分享
发布于 2023-09-22 11:51 江苏

相关推荐

02-11 17:51
腾讯_TEG_技术
点赞 评论 收藏
分享
01-15 17:34
保定学院 Java
数学转码崽:学历没优势就得卷项目和实习啊,但是我看了一下你这个项目,什么雪花算法,搜索引擎,Docker,minio这些都属于通用的东西啊,根本不算亮点,没有任何业务相关性。 还有第二个看到统一鉴权,分片上传估计面试官都不想看了。连我一个偶尔刷刷牛客简历的都看多了,面试官估计早都看吐了。。。 秋招结束了,就尽量找找中小厂吧,毕竟你现在转行已经没时间了,高低有一段实习经历
点赞 评论 收藏
分享
评论
10
3
分享

创作者周榜

更多
牛客网
牛客企业服务