栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言奇数反序回文数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言奇数反序回文数

学习途中记录一点成长

以下是题目

找出m至n之间(包括m和n)满足以下特性的整数:

(1)它是奇数;
(2)该数也是一个完全平方数(完全平方数是指该数是某个整数的平方);
(3)该数还是回文数(回文数是指该数等于它的反序数)。
例如,121是奇数,它是11的平方,反序后也是121,因此121是符合题目要求的整数。

从原题目可以知道,三个判断(奇数,完全平方数,回文数),所以说理论上三个if判断语句就能得出结果了。

我为了思路方便整理,写出三个判断函数

首先是奇数判断

int IsOdd(int c) {
    if (c % 2 != 0)
        return c;
    else
        return false;
}

然后是完全平方数判断

int IsSquare(int a) {
    int  y;
    y = (int)sqrt(a);
	if (a == y * y) {
		return y;
	}
	else
		return false;
}

然后是回文数判断(回文数判断是直接用的别人的代码)

int IsPalindrome(int b) {
    int s,y = 0;
    s = b;
    while (s > 0) {
        y = y * 10 + s % 10;
        s = s / 10;
    }
    if (y == b) {
        return b;
    }
    else {
       return false;
    }
}

最后主函数

int main() {
    int m, n;
    printf("请输入m=");
    scanf("%d", &m);
    printf("请输入n=");
    scanf("%d", &n);
    int i;
    for (i = m; i <= n; i++) {
        if (IsOdd(i)) {
            if (IsSquare(i)) {
                int q = IsSquare(i);
                if (IsPalindrome(i)) {
                    printf("%d是奇数,它是%d的平方,反序后也是%d。n",i,q,i);
                }
            }
        }
    }
    return 0;
    }

前面三个函数如果为true我都返回了值,主要是题目要求输出格式,直接返回数值,输出的时候直接用方便一点。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529392.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号