有一种数叫回文数,正读和反读都一样,如12321便是一个回文数。编写一个程序,从命令行得到一个整数,判断该数是不是回文数。

本文介绍了一个简单的Java程序,用于判断用户输入的整数是否为回文数。通过命令行接收输入,并利用StringBuilder的reverse方法进行正反对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package task08;

import java.util.Scanner;

/*
 * 8、有一种数叫回文数,正读和反读都一样,如12321便是一个回文数。
 * 	编写一个程序,从命令行得到一个整数,判断该数是不是回文数。 
 */
public class Task08 {

	public static void main(String[] args) {
		/**
		 * 思路:
		 * 1.获取命令行输入的字符串
		 * 2.使用StringBuilder.reverse()反转方法判断
		 * 		
		 */
		Scanner sc = new Scanner(System.in);
		System.out.println("判断是否回文数");
		System.out.println("请输入一个整数:");
		String str = sc.next();
		
		//判断
		if(str.equals(new StringBuilder(str).reverse().toString())) {
			System.out.println("是回文数");
		}else {
			System.out.println("不是");
		}
	}

}

### 编写判断字符串是否为回文的函 在多种编程语言中,可以实现一个用于检查字符串是否为回文的功能。以下是几种常见方法及其具体实现。 #### 方法一:双指针法 通过设置两个指针分别指向字符串的开头结尾,逐步向中心移动并比较对应的字符是否相同。如果所有对应位置上的字符均相等,则说明该字符串是一个回文串[^2]。 ```python def is_palindrome_two_pointers(s: str) -> bool: left, right = 0, len(s) - 1 while left < right: if s[left] != s[right]: return False left += 1 right -= 1 return True ``` #### 方法二:反转字符串对比法 将原始字符串翻转并与原字符串进行比较。若两者一致,则表明这是一个回文串[^3]。 ```python def is_palindrome_reverse_string(s: str) -> bool: reversed_s = s[::-1] return s == reversed_s ``` #### 方法三:递归方式 利用递归来逐层剥离字符串两端的字符,并不断缩小范围直到只剩下一个或零个字符为止。在此过程中始终保证当前层次上两头字符匹配才能继续深入下一层级[^1]。 ```python def is_palindrome_recursive(s: str) -> bool: if len(s) <= 1: return True elif s[0] != s[-1]: return False else: return is_palindrome_recursive(s[1:-1]) ``` 以上提供了 Python 中基于不同逻辑思路来检测给定输入是不是满足条件的方法。对于其他像 C 这样的低级别程序设计工具也可以按照相似原理构建相应解决方案[^4]。 ### 示例代码(C语言) 下面展示的是使用 C 实现的一个版本: ```c #include <stdio.h> #include <string.h> #include <stdbool.h> bool isPalindrome(char* s) { int len = strlen(s); for (int i = 0, j = len - 1; i < j; i++, j--) { if (s[i] != s[j]) { return false; } } return true; } int main() { char s[100]; printf("请输入一个字符串:"); scanf("%s", s); if (isPalindrome(s)) { printf("%s 是回文字符串\n", s); } else { printf("%s 不是回文字符串\n", s); } return 0; } ``` 上述各段落已适当加入引用标记以标明信息出处。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值