请编写函数求回文数

请编写函数求回文数,第1张

1、 题目

编写函数:打印所有不超过n(取n<256)的其平方具有对称性质的数(也称回文数)。

2、思路:

把数n的平方用数组保存每位起来,然后反转一次数组,依然是n的平方就是了,

比如:5

平方数:25

反转平方数:52

如果5*5 也等于52,那么就是回文数,反之则不是

比如:11

平方数:121

反转平方数:121

如果11*11 也等于121,那么就是回文数,反之则不是

3 、温馨提示

      C语言试题汇总里可用于计算机二级C语言笔试、机试、研究生复试中C程序设计科目、帮助C语言学者打好程序基础、C语言基础,锻炼您的逻辑思维和解决问题的能力,帮助你成为C语言笔试、机试解题高手,帮助你拿到C语言工作的offer,每一个题目都附带源代码和运行结果,让你不再有任何困惑,妈妈再也不担心我的C语言了。

如果程序有任何看不懂或者哪个步骤不理解的地方都可以加我微信(15874274916)私聊我,或者有更好的思路解决办法都可以加我微私聊,一起探讨、希望可以正真的帮助到你,同时也可以扫下面的二维码关注我微信公众号,比如你还对生活、美食或者其它方面都感兴趣,都可以加微信交流,博主擅长讲解计算机相关方面的知识、如果大家对计算机方向、前端、移动端、服务端、数据结构、算法、网络、高数等等一些列方向比较迷茫或者不知道要学哪些?或者具体怎么学?或者其它方向有任何困惑都可以找我交流,谢谢大家关注。


     

4、源代码实现
#include 
#include 

/**
 * 
 * 回文数
 * */
void fun(int a)
{
    if (a < 0)
    {
        printf("data error\n");
        return;
    }
    int n = 0, k = 0;
    int m[16];
    int i = 0, c = 0;

    for (n = 1; n < a; ++n)
    {
        int t = 1;
        c = n * n;
        k = 0;
        for (i = 0; c != 0; i++)
        {
            m[i] = c % 10;
            c = c / 10;
        }
        for (; i > 0; i--)
        {
            k = k + (m[i - 1] * t);
            t = t * 10;
        }
        if (k == n * n)
        {
            printf("number is %d value is %d\n", n, n * n);
        }
    }
}

int main()
{
    int a = 256;
    fun(a);
    system("pause");
    return 0;
}

5、运行结果
number is 1 value is 1
number is 2 value is 4
number is 3 value is 9
number is 11 value is 121
number is 22 value is 484
number is 26 value is 676
number is 101 value is 10201
number is 111 value is 12321
number is 121 value is 14641
number is 202 value is 40804
number is 212 value is 44944

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/674831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存