列表

详情


AB29. 快速乘

描述

请你计算 的值。要求只能使用加法和取模运算,且计算过程中的值不能超过
一共有 q 次询问。

输入描述

第一行输入一个正整数 q ,代表询问次数。
接下来每行输入三个正整数 a,b,p ,代表一次询问。
数据范围:

输出描述

对于每次询问,输出一个整数,代表 的值。

示例1

输入:

2
2 2 6
3 4 10

输出:

4
2

原站题解

C++ 解法, 执行用时: 36ms, 内存消耗: 1160KB, 提交时间: 2022-06-19

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll fun(ll x, ll y, ll z)
{
    return x*y%z;

}
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        ll x,y,z;
        scanf("%lld%lld%lld",&x,&y,&z);
        printf("%lld\n",fun(x,y,z));
    }
    return 0;
}

C 解法, 执行用时: 37ms, 内存消耗: 1016KB, 提交时间: 2022-03-31

#include <stdio.h>
int main()
{
    int sum;
    scanf("%d", &sum);
   
    while (sum-- > 0) {
        long long a, b, p;
        long long res = 0;
        scanf("%lld %lld %lld", &a, &b, &p);
        while(b--) {
            res += a % p;
        }
        printf("%lld\n", res % p);
    }
    return 0;
}

C 解法, 执行用时: 38ms, 内存消耗: 1016KB, 提交时间: 2022-05-04

#include<stdio.h>
int main()
{
    int q;
    while(scanf("%d",&q)!=EOF)
    {
        for(int i=0;i<q;i++)
        {
            long long a,b,p;
            long long num=0;
            scanf("%lld %lld %lld",&a,&b,&p);
            while(b--)
                num+=a%p;
            num=num%p;
            printf("%lld\n",num);
        }
    }
}

C 解法, 执行用时: 39ms, 内存消耗: 992KB, 提交时间: 2022-08-02

#include<stdio.h>
void function(long long a, long long b, long long p)
{
    int i = 0;
    long long result = 1;
    result=(a%p*b%p)%p;
    printf("%lld\n", result % p);
}
int main()
{
    int q = 0;
    scanf("%d", &q);
    long long a, b, p;
    while (q--)
    {
        scanf("%lld%lld%lld", &a, &b, &p);
        function(a, b, p);
    }
    return 0;
}

C++ 解法, 执行用时: 39ms, 内存消耗: 1072KB, 提交时间: 2022-05-22

#include<iostream>
#include<vector>
using namespace std;
int main()
{
    long long int q,a,b,p;
    scanf("%lld",&q);
    for(int i=0;i<q;i++)
    {
        long long int num=0;
        scanf("%lld%lld%lld",&a,&b,&p);
        if(b==0)
            printf(0);
        for(int j=0;j<b;j++)
        {
            num+=a;
        }
        printf("%lld\n",num%p);
    } 
}

上一题