gpt4 book ai didi

c - 程序在c中打印两个整数之间的阿姆斯特朗数字。无法找到代码中的错误

转载 作者:行者123 更新时间:2023-11-30 18:11:31 25 4
gpt4 key购买 nike

我编写了以下代码来打印两个整数之间的阿姆斯特朗数字。但我无法找到错误,因为代码对我来说看起来很好。请帮忙。

void main()
{
int a,b;
printf("Enter the starting limit");
scanf("%d",&a);
printf("Enter the ending limit");
scanf("%d",&b);
int i;
int sum=0;
for(i=a+1;i<b;i++)
{
char word[50];
sprintf(word,"%d",i);
int temp=strlen(word);
int j;
for(j=0;j<temp;j++)
{
int c=i%10;
sum+=pow(c,temp);
i=i/10;

}
if (sum==i)
{
printf("%d",i);
}
}
}

最佳答案

正如有人回答过的那样 - 我也会回答。仅使用整数算术。不需要字符串或 double

#include <stdio.h>

typedef unsigned long long ull; // for convenience only


ull sum_cubes(ull num)
{
ull result = 0;
while(num)
{
unsigned digit = num % 10;
result += (ull)digit * digit * digit;
num /= 10;
}
return result;
}

#define MIN 0 //or 100 depending if 001 is the 3 digints number or not.
#define MAX 1000


int main(void)
{
for(ull num = MIN; num < MAX; num++)
{
if(num == sum_cubes(num))
{
printf("Hurray!! Found - %llu\n", num);
}
}
}

关于c - 程序在c中打印两个整数之间的阿姆斯特朗数字。无法找到代码中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46618174/

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