用非递归函数和递归函数实现回文数的判定方法py
时间: 2023-11-06 19:10:21 浏览: 71
使用非递归函数实现回文数的判定方法:
```python
def is_palindrome(num):
num_str = str(num)
n = len(num_str)
for i in range(n // 2):
if num_str[i] != num_str[n-i-1]:
return False
return True
```
使用递归函数实现回文数的判定方法:
```python
def is_palindrome(num):
num_str = str(num)
if len(num_str) <= 1:
return True
if num_str[0] != num_str[-1]:
return False
return is_palindrome(num_str[1:-1])
```
两种方法的原理都很简单,就是将数字转换为字符串后,使用双指针或者递归的方式判断字符串是否是回文。
相关问题
python编写程序,实现回文数判断,要求加入异常捕获语句使用递归函数、
在Python中,你可以通过编写一个递归函数来判断一个数是否是回文数。回文数是指从前往后读和从后往前读都一样的数字。为了加入异常处理,我们需要考虑输入可能是非整数的情况。下面是一个示例:
```python
def is_palindrome(n, reversed_num=None):
# 如果已经翻转到了0或者n,说明是回文数
if reversed_num is None:
reversed_num = int(str(n)[::-1]) # 将数字翻转
elif n == reversed_num:
return True
try:
# 如果当前位不匹配,则不是回文数
if n % 10 != reversed_num % 10:
return False
# 递归检查剩余部分
return is_palindrome(n // 10, reversed_num // 10)
except TypeError: # 捕获非整数类型的异常
print(f"Error: 输入{n}应为整数.")
return False
# 使用示例
num = input("请输入一个整数:")
try:
num = int(num)
result = is_palindrome(num)
if result:
print(f"{num}是回文数。")
else:
print(f"{num}不是回文数。")
except ValueError:
print("错误:输入无效,请输入一个整数。")
判断回文数的递归函数c++
判断回文数的递归函数c是一个能够判断一个整数是否为回文数的函数,实现的方法是将这个整数转换成字符串,然后判断字符串的左右两端是否相等,若相等则递归地判断字符串的中间子串是否为回文数。
在c语言中,可以使用逆序字符串进行比较,若字符串相同则为回文数。具体实现如下:
int isPalindrome(char* s) {
int len = strlen(s);
if (len <= 1) {
return 1;
}
else if (s[0] == s[len - 1]) {
s[len - 1] = '\0';
return isPalindrome(s + 1);
}
else {
return 0;
}
}
该函数首先判断字符串的长度是否小于等于1,如果是,则返回1表示该字符串是回文数。接着判断字符串的左右两端是否相等,如果相等,则递归地判断子串是否为回文数。如果不相等,则返回0表示该字符串不是回文数。
阅读全文