700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言中判断回文数用数组的方法 【C语言】回文数和回文字符串的判断

C语言中判断回文数用数组的方法 【C语言】回文数和回文字符串的判断

时间:2024-03-27 08:23:01

相关推荐

C语言中判断回文数用数组的方法 【C语言】回文数和回文字符串的判断

一、名词解释:

如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666

同理如果一个字符串正着反着都是一样就称为这个字符串是回文字符串,例如“aba”,"aabb"

二、解题思路

回文数解题思路一:可以将整数逐位存到数组中,在依次把第一个和最后一个比较,直到中间位为止

这个思路同回文字符串的思路相同。

回文数解题思路二:将该整数逆置后的整数和逆置前比较。

三、算法代码演示

1、回文数解法

解法1:

#include int main()

{

int num, s, y = 0;

printf("Please input numbers: ");

scanf_s("%d", &num);

s = num;

while (s > 0)

{

y = y * 10 + s % 10;

s = s / 10;

}

if (y == num)

{

printf("%d是一个回文数!\n", num);

}

else

{

printf("%d不是一个回文数!\n", num);

}

}

结果截图:

解法2:

#include int main()

{

int a[50];

int num, s, y = 0;

printf("Please input numbers: ");

scanf_s("%d", &num);

s = num;

int i = 0;

while (num)

{

a[i] = num % 10;

num /= 10;

i++;

}

int j = 0;

int flag = 0;

for (j = 0; j < i / 2; j++)

{

if (a[j] != a[i - 1 - j])

{

flag = 1;

printf("%d不是一个回文数!\n", s);

break;

}

}

if (flag == 0)

{

printf("%d是一个回文数!\n", s);

}

}

结果截图:

2、回文字符串解法

#include #include int main()

{

int j, i, n;

char a[999], b[999];

printf("Please input string: ");

scanf("%s", &a); //输入字符串

n = strlen(a); //用strlen函数读取字符串长度(长度到\0停止)

for (i = 0, j = n - 1; i < n; i++, j--) //循环将字符串a逆序赋值给b

b[j] = a[i];

for (i = 0; i < n; i++)

{

if (b[i] != a[i])

break; //判断是否回文

}

if (i == n) printf("%s是一个回文字符串!\n",a);

else printf("%s不是一个回文字符串!\n", a);

return 0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。