逢余进一

    技术2025-10-29  8

    逢余进一

    问题描述:

    输入两个正数mn,如果n除以m余数不为0,则输出[n/m+1,否则输出n/m.

    方法1

    本方法要求知道n为某个最小单位的整数倍.比如:n为电量,那其为电子电量e的整数倍.设这个最小单位为e.那么所求可以写成:

    [(n+m-e/m

    意思是:哪怕nm多一个最小单位,也得进1.

    方法二:

    本方法为通用方法.方法思路:现在方便计算的只是取整运算(强制类型转换就得了).对于n/m的小数部分,设为a.a要么是0,要么非0.若对小数部分其整肯定为0.这不是我们想要的.但对1-a取整,情况就不一样了.a0时结果为1a不为0时结果为0.这样取整运算就可以充当一个判断语句了,我们正是想要一个具有判断功能的表达式.1-a可以写成:[n/m+1-n/m.所求可以写成:

    n/m+1-[[n/m+1-n/m

     

    void main() { double a; cout << "input a number:" << endl; cin >> a; cout << "the result is: " << int(a+1)-int(int(a+1)-a) << endl; }
    最新回复(0)