博客
关于我
《算法笔记》学习日记——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/

    你可能感兴趣的文章
    python 字符串显示中文_Python字符串开头的b"、u"、r"与中文乱码
    查看>>
    Python 字符串的几种拼装方式
    查看>>
    python 存入数据库bigint_python基础_MySQL的bigint类型
    查看>>
    python 学习 面向对象编程
    查看>>
    Python 学习日记第三篇 -- 字典
    查看>>
    Python 学习笔记(一)Data type
    查看>>
    python 安装echarts
    查看>>
    python 安装opencv及问题解决
    查看>>
    Python 安装程序:“写入文件 C:\Python27\pythonw.exe 时出错“
    查看>>
    Python 安装避坑指南:从入门到进阶
    查看>>
    Python 安装配置详解
    查看>>
    python 实现儿童算术游戏
    查看>>
    python 实现字符串转整型
    查看>>
    Python 实现定时任务的八种方案!
    查看>>
    Python 实现自动化测试 dubbo 协议接口
    查看>>
    python 对json数据读取及保存与读取,对dump,dumps,load,loads的理解
    查看>>
    Python 对mysql数据库的操作
    查看>>
    Python 对象数据库列表
    查看>>
    Python 导入requests报错No module named requests
    查看>>
    python 将函数加到列表中进行调用
    查看>>