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

    你可能感兴趣的文章
    Netty工作笔记0024---SelectionKey API
    查看>>
    Netty工作笔记0025---SocketChannel API
    查看>>
    Netty工作笔记0026---NIO 网络编程应用--群聊系统1---编写服务器1
    查看>>
    Netty工作笔记0027---NIO 网络编程应用--群聊系统2--服务器编写2
    查看>>
    Netty工作笔记0028---NIO 网络编程应用--群聊系统3--客户端编写1
    查看>>
    Netty工作笔记0029---NIO 网络编程应用--群聊系统4--客户端编写2
    查看>>
    Netty工作笔记0030---NIO与零拷贝原理剖析
    查看>>
    Netty工作笔记0031---NIO零拷贝应用案例
    查看>>
    Netty工作笔记0032---零拷贝AIO内容梳理
    查看>>
    Netty工作笔记0033---Netty概述
    查看>>
    Netty工作笔记0034---Netty架构设计--线程模型
    查看>>
    Netty工作笔记0035---Reactor模式图剖析
    查看>>
    Netty工作笔记0036---单Reactor单线程模式
    查看>>
    Netty工作笔记0037---主从Reactor多线程
    查看>>
    Netty工作笔记0038---Netty模型--通俗版
    查看>>
    Netty工作笔记0039---Netty模型--详细版
    查看>>
    Netty工作笔记0040---Netty入门--服务端1
    查看>>
    Netty工作笔记0041---Netty入门--服务端2
    查看>>
    Netty工作笔记0042---Netty入门--编写客户端
    查看>>
    Netty工作笔记0043---单Reactor多线程模式
    查看>>