输入的这些数是否对称

从键盘输入一个整数 𝑁(4≤𝑁≤20),接下来输入𝑁 个数,判断输入的这些数是否对称,是输出YES,否则输出NO?(注意N可以是奇数或者偶数)。对称的意思是这些数正过来读和反过来读都是一样的。

比如有 4 个数: 1 2 2 1 ,就是对称的,再比如有 55个数: 1 2 3 2 1 ,也是对称的,但有 5 个数: 1 2 3 1 2 ,就不是对称的。

输入

第 1行有一个整数 𝑛。 (4≤𝑛≤20)

第 2行有 𝑛 个整数

输出

如果是对称的请输出:YES,否则输出:NO
附代码:
#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int arr[n];
    if(n>=4&&n<=20)
    {
        for(int i=0;i<n;i++)
        {
            cin>>arr[i];
        }
        for(int i=0;i<n;i++)
        {
            if(arr[i]!=arr[n-1-i])
            {
                cout<<"NO";
                break;
            }
            else
            {
                cout<<"YES";
                return 0; 
            }
        }    
    }
    return 0;

### C语言实现判断整型是否对称 要判断一个整型是否对称(回文),可以通过将其转换为字符串并比较正序和逆序来完成。以下是具体的实现方法: #### 方法描述 通过对输入的整型进行处理,可以先将该整型转化为字符串形式,再利用双指针技术分别从头和尾向中间遍历字符组,逐一比较对应位置上的字符是否相等。 如果所有对应的字符都相同,则说明这个整型是一个对称;反之则不是。 下面提供一段完整的C语言代码示例[^4]: ```c #include <stdio.h> #include <stdbool.h> // 使用bool类型需要引入此库 #include <string.h> // 函声明:判断给定整n是否对称 bool isSymmetricNumber(int n); int main() { int number; printf("请输入一个整: "); scanf("%d", &number); if (isSymmetricNumber(number)) { printf("%d 是对称。\n", number); } else { printf("%d 不是对称。\n", number); } return 0; } // 定义函逻辑 bool isSymmetricNumber(int n) { char str[20]; // 假设最大不会超过19位十进制表示长度 sprintf(str, "%d", abs(n)); // 将绝对值转成字符串存储到str中去 // 这里使用abs是为了忽略负号的影响 int length = strlen(str); // 获取字符串的实际长度 for (int i = 0; i < length / 2; ++i) { if (str[i] != str[length - 1 - i]) { return false; // 只要有不匹配就返回false } } return true; // 如果循环结束都没有发现差异,则返回true } ``` 上述程序实现了基本功能需求,并考虑到了可能存在的边界情况比如负的情况也能够被正确识别出来作为非对称对待[^5]。 #### 关键点解析 - **sprintf** 的作用在于把值按照指定格式写入缓冲区,在这里是用来把整变成字符串以便后续操作。 - **strlen** 返回的是不含终止符'\0'的有效字符量。 - 循环条件设置成了`length/2`因为只需要对比一半即可得出结论关于整个序列是否满足镜像关系的要求。 这种做法时间复杂度接近O(log N),其中N代表原始字大小,空间上额外消耗了一个固定大小的字符组用于保存临时结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值