当前位置:首页 > C++目录 > 正文内容

如何判断回文数/回文串

亿万年的星光5年前 (2021-03-27)C++目录10201

所谓回文,就是从左往右读和从右往左读都是一样的,这样的数字或者字符称为回文数/回文字符。

做题的时候经常能看到判断回文操作。判断回文的一般有两种,一种是数字类型,一种是字符类型。两种分别介绍一下。

一、回文数字


参考方法1:经过分离重组后的数字和原数字相等。

int huiwen(int num)
{
	int s=0;
	int num2=num;
	while(num){
		s=s*10+num%10;
		num=num/10;
	} 
	if(s==num2)
		return 1;
	else
		return 0; 
}



二、回文字符


int huiwen( char *s )
{
	int n,i;
	n=strlen(s)-1;
	for(i=0;i<=n/2;i++)
	  if(s[i]!=s[n-i])
	    return 0;
	return 1; 
}


或者

int huiwen ( char *p)
{
    register int i = 0;      //计数变量初始化
    int len = strlen(p); //使用STRLEN函数取字符串数组的字符位数
    for (i = 0; i <= len; i++)
    {
        if (p[i] == p[len - 1])
        {
            len--; //若首尾两个字符等值,分别向字符串中心移动一位,并判断
        }
        else
        return 0;
    }
    return 1;
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    unsigned

    在一些代码中,经常能看到unsigned这种数据类型,比如下面这样的。#include<iostream> using namespace std; int&nbs...

    【C++图形化编程】鼠标函数及鼠标画板

    【C++图形化编程】鼠标函数及鼠标画板

    0.前言这篇文章简单介绍一下利用鼠标画图的程序#include<graphics.h> #include<conio.h> int main(){ initg...

    【题解】最短路径问题

    【题目描述】平面上有n个点(n≤100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现...

    Code::Blocks下载安装教程

    Code::Blocks下载安装教程

    Code::Blocks 是一款免费、开源且跨平台的 C/C++ 集成开发环境。它支持 Windows、Linux 和 macOS 等多种操作系统,核心特点是轻量快速、纯专注于 C/C++ 开发,并内...

    【数论】快速乘

    【数论】快速乘

    上一篇文章简单说了龟速乘的问题,有人觉得龟速乘还是太慢了,有没有什么办法再快一点,实际是有的,就是我们今天介绍的 快速乘。快速乘的原理和龟速乘不同,快速乘并不是基于二进制和位运算,严格来说,快速乘是利...

    C++中的位宽与保留小数

    C++中的位宽与保留小数

    一、setw函数C++ setw() 函数用于设置字段的宽度,语法格式如下setw(n)比如:#include <bits/stdc++.h> using names...