问题描述“回文”是一种特殊的数或者文字短语。他们无论是顺读还是倒读,结果都一样。例如:12321, 55555,45554。读入一个5位整数,判断它是否是回文数。输入多组测试数据,每组一行,一个五位整数,数据以0结尾。输出对每组输入数据输出一行,如果输入数是回文数,输出“Yes.” ,否则输出 “No.” 。输入样列12345
12321
11111
0输出样例No.
Yes.
Yes.自己做的总是不对的,所以想问问大家,谢谢!!
3 回答
已采纳
望远
TA贡献1017条经验 获得超1032个赞
#include<stdio.h>
void main()
{
int i,j,k,n,flag;
char arr[50][5];
printf("请输入你想要测试的数据组数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
flag=1;
getchar();
printf("请输入第%d个数据:",i+1);
for(j=0;j<5;j++)
{
scanf("%c",&arr[i][j]);
}
for(j=0,k=4;j<k;j++,k--)
{
if(arr[i][j]!=arr[i][k])
{
flag=0;
break;
}
}
if(flag)
{
printf("%c%c%c%c%c是回文数\n",arr[i][0],arr[i][1],arr[i][2],arr[i][3],arr[i][4]);
}
else
{
printf("%c%c%c%c%c不是回文数\n",arr[i][0],arr[i][1],arr[i][2],arr[i][3],arr[i][4]);
}
}
}运行结果:

Coolman
TA贡献7条经验 获得超4个赞
// Java
public class Test {
public static void main(String[] args) {
String i = "12345";
// 0
char[] a = i.toCharArray();
for (int start = 0, end = a.length - 1; start < end; start++, end--) {
if (a[start] != a[end]) {
System.out.println(false);
return;
}
}
// 1
for (int start = 0, end = i.length() - 1; start < end; start++, end--) {
if (i.charAt(start) != i.charAt(end)) {
System.out.println(false);
return;
}
}
System.out.println(true);
}
}- 3 回答
- 1 关注
- 2713 浏览
添加回答
举报
0/150
提交
取消
