六位数是否对称

分析问题

判断一个六位数是否对称,即正过来和倒过来是同一个数,也就是个位=十万位;十位等于万位;百位等于千位;

建立模型

方法一

输入六位整数 num
将 num 转换为字符串 str_num

如果 str_num 的第一个字符等于第六个字符
且 str_num 的第二个字符等于第五个字符
且 str_num 的第三个字符等于第四个字符
是对称数 则输出 “Y”
否则
不是对称数 输出 “N”

方法二

输入六位整数 num
定义六个变量分别表示十万、万、千、百、十、个位

比较 个位=十万位、十位等于万位、百位等于千,如果相等:

​ 是对称数,输出”Y”

否则

​ 不是对称数,输出”N“

编写代码

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    int g, s, b, q, w, sw;
    g = n % 10;
    s = n / 10 % 10;
    b = n / 100 % 10;
    q = n / 1000 % 10;
    w = n / 10000 % 10;
    sw = n / 100000 % 10;
    if(g==sw && s==w && b==q){
        cout<<"Y";
    }else{
        cout<<"N";
    }
    return 0;
}

保存 编译 运行