a和b都是短整型,不超过65536

img


a和b都是短整型,不超过65536,如果取模65536会做,但是取模65537不会

直接写%65537就是了
但是两个短整型的乘积,需要长整型才能存储,否则会溢出,求余65537是毫无意义的

题目最后已经提示了,可以用加法或者减法代替mod。代码如下:

#include <stdio.h>

int main()
{
    short a, b;
    int c;
    scanf("%d %d", &a, &b); //读入a和b的值
    c = (int)a * b; //a和b的乘积可能会超出short类型范围,所以用int类存储结果
    while (c >= 65537)
        c -= 65537; //左移16位,相当于除以
    printf("%d", c);
    return 0;
}

如有帮助,望采纳,谢谢。

img