lsmCC 发表于 2024-2-20 10:33:49

代码比较

#include<bits/stdc++.h>
using namespace std;

#define endl '\n'
#define ll long long
#define int long long

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t;
    cin>>t;
    int shang=2e5+7;
    int arr;
    for(int i=1;i<=shang-1;i++){
      int he=0;
      int zhi=i;
      while(zhi){
            he+=zhi%10;
            zhi/=10;
      }
      arr=he;
    }
    arr=0;
    for(int i=1;i<=shang-1;i++){
      arr+=arr;
    }
    while(t--){
      int n;
      cin>>n;
      cout<<arr<<endl;
    }
    return 0;
}
与第二份代码相比为什么会快这么多,第二份代码为什么运行这么慢
#include<bits/stdc++.h>
using namespace std;

#define endl '\n'
#define ll long long
#define int long long
const int N=1e6+10;
int pre;
void solve()
{
   
   int n;
   cin>>n;
   for(int i=1;i<=n;i++)
   {
    int he=0;
    int x=i;
    while(x>0)
    {
      he+=x%10;
      x/=10;
    }
    pre=he;
   }
   for(int i=1;i<=n;i++)
   {
    pre+=pre;
   }
   cout<<pre<<endl;
   


}
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t;
    cin>>t;
    while(t--)
    {
      solve();
    }
}

FishC 发表于 2024-2-20 10:33:59

这段代码的作用是读入一个整数t,然后循环t次。每次循环中,程序将输入的整数存储在变量arr中,并输出arr。

在这段代码中,使用了一些预处理指令和宏定义来简化代码编写和提高效率。其中,`#include`是C++中引入头文件的指令,`using namespace std;`表示使用标准命名空间std,`#define endl '\n'`定义了换行符为'\n',`#define ll long long`和`#define int long long`定义了ll和int为long long型。

程序开始时通过`ios::sync_with_stdio(0)`来关闭C++标准流与C标准流之间的同步,以提高输入输出效率。然后通过`cin.tie(0)`和`cout.tie(0)`将cin和cout与其他输入输出关联起来,以提高效率。

接着定义了变量t和shang,并将2e5+7赋值给shang。然后进入for循环,从1循环到t。在循环体内,使用`cin>>arr`读入一个整数,并使用`cout`将该整数输出。

这段代码可以正常运行,但是在最后一行的输出部分似乎出现了错误,因为没有给出具体的输出内容,所以无法得知最终输出的内容是什么。如果需要进一步帮助,请提供更多的信息。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 代码比较