RainbowMan 发表于 2020-3-10 10:59:45

判断回文数

判断回文数的流程图

墨羽岚 发表于 2020-3-10 11:31:14

#include<stdio.h>

int main()
{
    int a,b,c;
        scanf("%d",&a);
        b=a;
        c=0;
        while(b)
        {
                c=c*10+b%10;
                b/=10;
        }
        if(a==c)
                printf("是回文数\n");
        else
                printf("不是回文数\n");
        return 0;
}
提问尽量有礼貌些

zltzlt 发表于 2020-3-10 11:39:45

请先学会提问题

liuzhengyuan 发表于 2020-3-10 14:22:46


[*]输入
[*]判断最后一个数是否与第一个相等
[*]判断倒数第二个数是否与第二个数相等
[*]然后判断的三个是否有倒数第三个相等
[*]第四个,第五个,以此类推,直至判断完毕
[*]上面几个用 for 循环做
[*]如果中间有一个不相等,就不是回文
[*]最后输出

liuzhengyuan 发表于 2020-3-10 14:38:43

本帖最后由 liuzhengyuan 于 2020-3-10 15:46 编辑

补充一下如何判断(这是C++):
但C与C++差别不大
#include<bits/stdc++.h>
using namespace std;

int milen(int a)
{
        int len=0;
        while(a!=0)
        {
                a/=10;
                len++;
        }
        return len;
}//求数为函数

int main()
{
        int number;
        cin>>number;//输入
       
        for(int i=1;i<=milen(number)/2;i++)//循环
        {
                int last=number % 10;//算出最后一位数 比如 778%10=8
                int first=number / pow(10,milen(number)-1);//算出第一位数,比如 778/100=7
               
                if(last!=first)
                {
                        cout<<"不是回文";
                        return 0;//return 0表示结束
                }
               
                number/=10;
                number-=first * pow(10,milen(number)-1);//把数位去掉,新来一组
                // 44344 下回就变成了 434 在下回 3.
               
        }
       
        cout<<"是回文";
        return 0;
}
页: [1]
查看完整版本: 判断回文数