输入a、b输出[a、b]中的所有阿姆斯特朗数字,以1s和1<=a<=b<=10^7 这是我的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<<" "; } } } #包括 #包括 使用名称空间std; int main() 长a,b; cin>>a>>b; 对于(long long i=a;i
可能使用以10为底的对数,如果使用以10为底的对数trunc加上一个数字的1,则得到位数。并使用一个以0,1,2,…9的POW初始化的向量,而不是在每个迭代中重新计算数字效力。阿姆斯特朗数是什么?请向:(1)提问正确地缩进并修复代码(缺少输入a、b输出[a、b]中的所有阿姆斯特朗数字,以1s和1<=a<=b<=10^7 这是我的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<<" "; } } } #包括 #包括 使用名称空间std; int main() 长a,b; cin>>a>>b; 对于(long long i=a;i,c++,C++,可能使用以10为底的对数,如果使用以10为底的对数trunc加上一个数字的1,则得到位数。并使用一个以0,1,2,…9的POW初始化的向量,而不是在每个迭代中重新计算数字效力。阿姆斯特朗数是什么?请向:(1)提问正确地缩进并修复代码(缺少{等)(2)包括问题本身所需的所有信息。如果代码有效并且只需要改进,最好在
{
等)(2)包括问题本身所需的所有信息。如果代码有效并且只需要改进,最好在