gpt4 book ai didi

c++ - input a,b output all armstrong numbers in [a,b] in 1s and 1<=a<=b<=10^7

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:48 27 4
gpt4 key购买 nike

这是我关于c++的代码我在我学校的 IDE 上做,当我在上面运行代码时。它有 10 个测试来运行程序,它说只有 8 个测试正确,2 个测试超出时间限制因为它允许程序在 1 秒内运行所以我想问他们是否有另一种方法可以让我的程序运行得更快。我是堆栈溢出的初学者所以我不习惯这样做如果有任何错误请告诉我谢谢你

#include <bits/stdc++.h>
#include <cmath>
using namespace std;
int main()
long long a,b;
cin>>a>>b;
for(long long i=a;i<=b;i++){
int digit=0;
long long number=i,sum=0;
while(number!=0){
number=number/10;
digit++;
}
number=i;
while(number!=0){
sum=sum+(pow((number%10),digit));
number=number/10;
}
number=i;
if(number==sum){
cout<<number<<" ";
}
}
}

最佳答案

可能使用以 10 为底的对数,如果您使用以 10 为底的对数 trunc 加上一个数字的 1,您将获得位数。并使用用 0,1,2,...9 的 pow 初始化的 vector 来计算效力,而不是在每次交互时重新计算。

关于c++ - input a,b output all armstrong numbers in [a,b] in 1s and 1<=a<=b<=10^7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58434544/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com