【发布时间】:2016-05-29 19:46:21
【问题描述】:
也许你能告诉我方法,至少我可以开始。我只能使用 C 语言。该任务有非常具体的限制,我不能以任何方式打破它们。任务是:
- 编写检查字符串是否为回文的递归函数。
-
strlen()只能在函数中使用一次。 - 不能使用任何循环或基于循环的函数。
- 在递归函数中只能使用一个转换。
- 可以更改字符串,但前提是它会在末尾返回 功能。
- 函数声明为:
int palindrom(char* str); -
我开始写了,但没有想法了:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int palindrom(char* str) { int len = strlen(str); if (str[0] != str[len - 1]) return 0; } int main(void) { char string1[] = "ROTATOR"; char string2[] = "8536358"; char string3[] = "Palindrome"; if (palindrom(string1)) printf("%s is Palindrome\n", string1); else printf("%s is not Palindrome\n", string1); if (palindrom(string2)) printf("%s is Palindrome\n", string2); else printf("%s is not Palindrome\n", string2); if (palindrom(string3)) printf("%s is Palindrome\n", string3); else printf("%s is not Palindrome\n", string3); return 0; }
【问题讨论】:
-
哇,你很快就遇到了作家的障碍。
-
this SO post 可能重复。
-
谷歌搜索'C递归函数查找回文',即。您的标题以“C”开头,给出; “大约 92,300 个结果”。
-
不知道你为什么这么快就责怪别人,但我是这个领域的新手。我看到了那个话题,这不是我需要的东西。我的代码应该回答我写的所有观点。
-
我建议——一般来说——当你有一个任务有几个限制时,你先解决它没有这些限制,让你自己熟悉任务以及如何解决它.然后你转向限制。大多数代码不是坐下来写的,而是一个开发过程。
标签: c recursion palindrome