博客
关于我
《算法笔记》学习日记——5.1 简单数学
阅读量:211 次
发布时间:2019-02-28

本文共 1255 字,大约阅读时间需要 4 分钟。

为了解决这个问题,我们需要编写一个程序来判断一个整数是否为守形数。守形数的定义是它的平方的低位部分等于它本身。例如,25的平方是625,低位部分是25,因此25是一个守形数。

方法思路

  • 读取输入:我们需要读取多个整数,每个整数在2到100之间。
  • 计算平方:对于每个输入的整数,计算它的平方。
  • 获取平方后的末尾位数:找出输入整数的位数,然后从平方结果中截取相同位数的末尾部分。
  • 比较:将截取后的末尾部分与原数进行比较。如果相等,则输出"Yes!",否则输出"No!"。
  • 解决代码

    #include 
    #include
    #include
    #include
    #include
    using namespace std;int main() { int n; while (scanf("%d", &n) != EOF) { int d = 0; int temp = n; while (temp != 0) { d++; temp /= 10; } long long square = pow(n, 2); int mod = 1; for (int i = 0; i < d; i++) { mod *= 10; } long long last_part = square % mod; if (last_part == n) { printf("Yes!\n"); } else { printf("No!\n"); } memset(&n, 0, sizeof(int)); memset(&square, 0, sizeof(long long)); memset(&last_part, 0, sizeof(long long)); memset(&mod, 0, sizeof(int)); } return 0;}

    代码解释

  • 读取输入:使用scanf函数读取输入,直到EOF为止。
  • 计算位数:通过循环计算输入整数的位数。
  • 计算平方:使用pow函数计算输入整数的平方,并将结果存储在long long类型中以避免精度问题。
  • 截取末尾部分:计算一个模数mod,这个模数等于10的d次方。然后使用模运算截取平方结果的末尾d位。
  • 比较并输出结果:将截取后的末尾部分与原数比较,如果相等则输出"Yes!",否则输出"No!"。
  • 这个方法通过数学运算高效地解决了问题,确保了代码的正确性和效率。

    转载地址:http://sxtp.baihongyu.com/

    你可能感兴趣的文章
    Vue过滤器_使用过滤器进行数据格式化操作---vue工作笔记0015
    查看>>
    Ncast盈可视 高清智能录播系统 IPSetup.php信息泄露+RCE漏洞复现(CVE-2024-0305)
    查看>>
    NCNN源码学习(1):Mat详解
    查看>>
    nc命令详解
    查看>>
    NC综合漏洞利用工具
    查看>>
    ndarray 比 recarray 访问快吗?
    查看>>
    ndk-cmake
    查看>>
    NdkBootPicker 使用与安装指南
    查看>>
    ndk特定版本下载
    查看>>
    NDK编译错误expected specifier-qualifier-list before...
    查看>>
    Neat Stuff to Do in List Controls Using Custom Draw
    查看>>
    Necurs僵尸网络攻击美国金融机构 利用Trickbot银行木马窃取账户信息和欺诈
    查看>>
    Needle in a haystack: efficient storage of billions of photos 【转】
    查看>>
    NeHe OpenGL教程 07 纹理过滤、应用光照
    查看>>
    NeHe OpenGL教程 第四十四课:3D光晕
    查看>>
    Neighbor2Neighbor 开源项目教程
    查看>>
    neo4j图形数据库Java应用
    查看>>
    Neo4j图数据库_web页面关闭登录实现免登陆访问_常用的cypher语句_删除_查询_创建关系图谱---Neo4j图数据库工作笔记0013
    查看>>
    Neo4j图数据库的介绍_图数据库结构_节点_关系_属性_数据---Neo4j图数据库工作笔记0001
    查看>>
    Neo4j图数据库的数据模型_包括节点_属性_数据_关系---Neo4j图数据库工作笔记0002
    查看>>