判断回文数
判断回文数的流程图#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;
}
提问尽量有礼貌些 请先学会提问题
[*]输入
[*]判断最后一个数是否与第一个相等
[*]判断倒数第二个数是否与第二个数相等
[*]然后判断的三个是否有倒数第三个相等
[*]第四个,第五个,以此类推,直至判断完毕
[*]上面几个用 for 循环做
[*]如果中间有一个不相等,就不是回文
[*]最后输出
本帖最后由 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]