为了账号安全,请及时绑定邮箱和手机立即绑定

数字回文程序

数字回文程序

C C++
Chihiro咩咩 2016-10-27 21:53:58
问题描述“回文”是一种特殊的数或者文字短语。他们无论是顺读还是倒读,结果都一样。例如: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]);
		}

	}
}

运行结果:

//img1.sycdn.imooc.com//581211880001ea9b03100155.jpg

查看完整回答
1 反对 回复 2016-10-27
?
Coolman

TA贡献7条经验 获得超4个赞

从首尾开始分别取一个字符比较,如果不同就停止循环。

注意比较次数 start < end,最多比较 长度/2 次。

查看完整回答
1 反对 回复 2016-10-27
?
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);
    }
}


查看完整回答
1 反对 回复 2016-10-27
  • 3 回答
  • 1 关注
  • 2591 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信