小姜骑猪


私信TA

用户名:3319716509

访问量:334

签 名:

等  级
排  名 10465
经  验 1086
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校 武汉工程科技学院
专  业

  自我简介:

TA的其他文章

简单好理解
浏览:71

解题思路:先将数字各位相加,在判断之和是否与n相等,相等在进行下一步---判断是否为回文,利用数组将各位存放在数组中,依次比较。

注意事项:要考虑数字的位数,和不存在的情况---利用一个变量flag

参考代码:

#include<stdio.h>

#include<string>


int flag=0;//判断不存在的情况


int huiwen(int a[], int sum, int n)

{

    if (sum == n)//先判断各位之和是否相等

    {

        if (a[0] != 0)//在判断是几位数--6位

        {

            for (int j = 0; j < 3; j++)//判断是否为回文

            {

                if (a[j] != a[6 - j - 1])

                    return 0;

            }

            flag = 1;

            return 1;

        }

        else      //五位

        {

            for (int j = 1; j < 3; j++)//判断是否为回文

            {

                if (a[j] != a[6 - j])

                    return 0;

            }

            flag = 1;

            return 1;

        }

    }

    else

        return 0;

}


int main()

{

    int n;

    int sum=0;

    int a[6] = { 0,0,0,0,0,0 };

    scanf("%d", &n);

    for (int i = 10000; i < 1000000; i++)

    {

        a[0] = i / 100000;

        a[1] = i % 100000 / 10000;

        a[2] = i % 100000 % 10000 / 1000;

        a[3] = i % 100000 % 10000 % 1000 / 100;

        a[4] = i % 100000 % 10000 % 1000 % 100 / 10;

        a[5] = i % 100000 % 10000 % 1000 % 100 % 10 / 1;


            sum = a[0]+ a[1] + a[2] + a[3] + a[4] + a[5] ;

      

        if (huiwen(a,sum,n) == 1)

            printf("%d\n", i);

        else if (huiwen(a,sum,n) == 0)

            ;

    }

    if (flag == 0)

        printf("-1\n");

    return 0;

}


 

0.0分

1 人评分

  评论区

第二个头文件要去掉,不然会出错的
2022-07-08 00:54:36
  • «
  • 1
  • »