gpt4 book ai didi

c - 阿姆斯特朗数字从 100 到 999

转载 作者:行者123 更新时间:2023-11-30 20:19:43 26 4
gpt4 key购买 nike

#include<stdio.h>
#include<math.h>

void main()
{
int num,n,an=0,r;

for(num=100;num<1000;num++)
{
n=num;
do
{
r=n%10;
an+=pow(r,3);
n=n/10;
}
while(n!=0);
if(an==num)
{
printf("Armstrong No Is:%d",an);
}
else
{
continue;
}

}
}

我尝试打印 Armstrong numbers但这段代码的问题是它总是执行 else 语句(继续),这意味着整个代码中的 an!=num 。我不知道我的逻辑出了什么问题。请帮我解决这个问题。

最佳答案

  1. 您不必将每个单独的数字的 an 重新初始化为零。

  2. 对如此小的积分指数使用 pow 可能会因浮点下冲而导致截断。请改用 r * r * r

相关:我只知道阿姆斯特朗数是什么,因为我在大学学过数学,内存力很好。在您的问题中明确定义这一点以帮助其他人回答可能是一个想法。

关于c - 阿姆斯特朗数字从 100 到 999,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49282228/

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