如何在C++;?或者如何使控制台应用程序运行得更快? 我有一个作业,经过一个编译器,检查是否正确,但它总是给出结果:“超过时间限制”,应用程序在正常C++编译器中正常工作,但是我必须把代码发送到MITIS,因为“时限超过”不接受它。

如何在C++;?或者如何使控制台应用程序运行得更快? 我有一个作业,经过一个编译器,检查是否正确,但它总是给出结果:“超过时间限制”,应用程序在正常C++编译器中正常工作,但是我必须把代码发送到MITIS,因为“时限超过”不接受它。,c++,algorithm,C++,Algorithm,任务: 输入: 在第一个输入行中,给出了整数t(1≤ T≤ 100000)指定测试的数量。每个测试由三个整数给出:a、b、m,如上所述(1≤ A.≤ 10^9, 0 ≤ B≤ 10^9, 1 ≤ M≤ 10^6) 输出: 应该打印T行。在每一行中,查询的答案是:(a^b)%m 输入数据示例: 2 3 2 10 正确答案是:9 一位朋友告诉我将cout改为printf,这可能会加快运行速度,但我不知道该怎么做 我的代码 #include <iostream> using names

任务: 输入: 在第一个输入行中,给出了整数t(1≤ T≤ 100000)指定测试的数量。每个测试由三个整数给出:a、b、m,如上所述(1≤ A.≤ 10^9, 0 ≤ B≤ 10^9, 1 ≤ M≤ 10^6)

输出:

应该打印T行。在每一行中,查询的答案是:
(a^b)%m

输入数据示例:

2
3 2 10
正确答案是:
9

一位朋友告诉我将cout改为printf,这可能会加快运行速度,但我不知道该怎么做

我的代码

#include <iostream>

using namespace std;

int main()
{
    int t;
    cin>>t;

    for (int i=0; i<t; ++i)
    {
        int a,b,m;
        long long int x,wynik=1;

        cin>>a>>b>>m;

        x=(long long int) a;

        do
        {
            x%=(long long int)m;
            if (b&1) {
                wynik*=x;
                wynik%=(long long int)m;
            }
            x*=x;
        } while (b>>=1);

        cout <<wynik<<endl;;
    }

    return 0;
}
#包括
使用名称空间std;
int main()
{
int t;
cin>>t;
对于(inti=0;i>a>>b>>m;
x=(长整型)a;
做
{
x%=(长整型)m;
国际单项体育联合会(b&1){
wynik*=x;
wynik%=(长整型)m;
}
x*=x;
}而(b>>=1);

cout回答字面问题,如何将
cout
更改为
printf


您需要的不是
#include
,而是
#include
,它是“C语言标准输入和输出”的缩写

而不是
cout a>>b>>m;
进入
scanf(“%d%d%d”,&a,&b,&m)
。这表示“读取三个十进制整数,一个进入变量
a
&
是获取变量的地址),另一个进入
b
,还有一个进入
m



这样说,注意C风格和C++风格输入和输出的相对速度取决于很多因素,包括编译器版本、OS和环境。在另一个测试环境中,你可能发现 CUT实际上是符合或更快的,<<代码> PRINTF。

< P>如果你想使用CIN和CUT,你可以插入这行。大体上


它的运行速度应该和priantf和scanf一样快。

但我一直失败,因为编译太长(超过1秒)——你说的“编译需要1秒”是什么意思"?你真的是说你的程序运行时间超过1秒吗?如果编译时间太长而真的失败,你应该向你的指导老师投诉。你的程序非常简单,如果他们的测试机器太慢,那不是你的错。你需要执行
a提升到b的幂
,还是
a异或b
你确定你的输入和预期输出是正确的吗?
2 3 2 10
将挂起,因为第一个
2
意味着应用程序需要两组a/b/m,但只有一组。当我使用
1 3 2 10
运行应用程序时,它会在4毫秒内运行。我猜你的应用程序等待第二组a/b/m的时间太长了a/b组/m@0x5453提醒:
std::pow
是一个浮点函数,在转换为整数时可能存在一些精度问题。
cin.tie(0);
cout.tie(0);
ios_base::sync_with_stdio(0);