判断以个数是否是回文数。例:
input : 121
output : true
input : -121
output : false
input : 1232321
output : true
以上这些例子就是回文数,看一个数字是否对称。
我的方法寻要用到数组,或者是说字符串。C语言中有bool类型,但只是代表‘0’ false,‘1’ true.无法靠这给直接输出‘true’或‘false’。
说不清楚,上香喷喷的代码吧!
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main(void)
{
int i=0;
char num[100];
bool flag=false;
printf("please input a set of number");
printf("(Judge whether it is palindrome number):\n");
scanf("%s", num);
int length = strlen(num);
while (i < (length/2)) {
if (num[i] == num[length - i - 1])
{
flag = true;
}
if (flag == false)
{
printf("false\n");
break;
}
i++;
}
if (flag != false)
{
printf("true\n");
}
return 0;
}
因为strlen()是无法计算int类型的字符串(数组)的长度,只能用char类型,但效果是一样的。代码中
i<(length/2)
只要算一半就行了,全算只会占用内存,代码简单看不出,一旦复杂,就会影响运行速度,能省就省,培养好习惯。
还有,我们这种方法不能直接在循环里输出true,因为会打印很多个true。要找一击必杀的false,一旦不成立,直接跳出循环,并打印false,逆向思维,慢慢培养,所有问题的答案都在原理中,溯本求源嘛。这是写算法题的很重要的思维,经验之谈,嫌弃勿喷。
现在还是小白嘛,很多东西还不会,等我学完C,再改改。
支持支持一下。
有问题可以问我,对小白说。
要是有大佬觉得有代码问题,还可以再精进 ,麻烦指点一下我。我热i爱学习。嘿嘿黑u。下次还有。