标题
回文数
类别
数组
时间限制
2S
内存限制
1000Kb
问题描述
若一个非负整数其各位数字按照正反顺序读完全相同,则称之为回文数,例如12321。
判断输入的整数是否是回文数。若是,则输出该整数各位数字之和,否则输出no。
输入说明
输入为一个整数n,0<=n<1000000000。
输出说明
若该整数为回文数,则输出整数各位数字之和,否则输出no。
输入样例
样例1输入
131
样例2输入
24
输出样例
样例1输出
5
样例2输出
no
#include<stdio.h>
int main()
{
int a[100] = { 0 };
int number;
scanf_s("%d", &number);
if (number < 10)
{
printf("%d",number);
}
else
{
int n = 0;
int sum = 0;
for (int i = 0; number / 10 != 0 || (number < 10 && number>0); i++)
{
a[i] = number % 10;
number = number / 10;
n = i + 1;
}
if (n % 2 == 0)
{
int i = 0, j = n - 1;
while (i < n / 2 - 1 && a[j] == a[i])
{
i++;
j--;
}
if (j - i == 1)
{
for (int i = 0; i < n; i++)
{
sum = sum + a[i];
}
printf("%d", sum);
}
else
printf("no");
}
else if (n % 2 != 0)
{
int i = 0, j = n - 1;
while (i < n / 2 && a[j] == a[i])
{
i++;
j--;
}
if (j == i)
{
for (int i = 0; i < n; i++)
{
sum = sum + a[i];
}
printf("%d", sum);
}
else
printf("no");
}
}
return 0;
}