永发信息网

杭电1061问题c++

答案:4  悬赏:50  手机版
解决时间 2021-03-30 10:48
杭电1061问题c++
最佳答案
思路错了,N太大,直接相乘肯定超时,需改进两点:
乘积的模 等于 模的乘积
平方法快速求指数
#include 
int solve(int n)
{
    int r = 1, x = n;
    while (n) {
        x %= 10;
        if (n & 0x1) {
            r *= x;
            r %= 10;
        }
        x *= x; 
        n /= 2;
    }
    return r;
}

int main() {

    int n, m;
    scanf("%d", &m);
    while (m--) {
        scanf("%d", &n);
        printf("%d
", solve(n));
    }
}
全部回答
你输入的数太大了吧
你把这句cout<
  • 3楼网友:十年萤火照君眠
  • 2021-03-29 20:57
个人认为第8行应该改成 if (a<=0). 我运行了一下,没有问题。就是不知道你想做什么。如果是个进制转换的话,function1就有问题了。但运行是可以的:)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯