【发布时间】:2010-10-29 01:11:47
【问题描述】:
我正在用 C 编写一些有用的函数。其中之一是 isPalindrome()。
我想确定一个数字是否是回文,我应该...
- 获取数组中的所有数字
- 使用两个索引进行迭代 - 一个从 0 开始,一个从数组计数开始
- 增加/减少索引,同时在数组匹配时为数组下标,如果数组计数为 0,我们就有一个回文(即完成遍历所有数字)。
我想出了...
int isPalindrome(int num) {
int places[100];
int i = 0;
while (num > 0) {
places[i++] = num % 10;
num /= 10;
}
int j = 0;
while (i >= 0 && places[j++] == places[--i]) {
}
return i == -1;
}
这通常是如何完成的?
我正在自学 C,虽然我可以知道我的代码何时编译并且不需要花费一整天的时间来解决问题,但我没有任何专家的眼睛可以告诉我如果我走在正确的轨道上。
那么,对我的代码有什么改进或建议吗?
非常感谢!
【问题讨论】:
-
IsPalindrome 是一个有用的函数吗?为了谁? ;-)
-
@Steven:它可能对从事Project Euler 挑战的人有用。 :)
-
欧拉计划是我写这个的原因:)
-
对于
places,可能不需要100元素,因为输入的是int,而INT_MAX = +2,147,483,647只有10个位数, -
@Greg 我们对“有用”的定义截然不同;-)
标签: c palindrome