编程输出前2个水仙花数(所谓水仙花数,是指一个3位数,其各位数字的立方和等于该数本身,例如:,153=1³+5³+3³,所以153是一个水仙花数)
这个是需要一个循环的计数来终止循环吗?🥹
可以用for循环(范围从100-999),将三位数依次取出分别赋值给三个变量(对10,100取余数和商可得),然后设一个计数变量,满足条件后输出前两个水仙花数。代码如下:
for(int i = 100;i <= 999;++i){
int count = 0;
int a = i % 100;
int temp = i - a * 100;
int b = temp / 10;
int c = temp - b * 10;
if(a^3 + b ^3 + c^3 == i)
{
if(count < 2){
printf("%d",i);
count ++;
}
}
}
这里求的是三位数的水仙花数,取值范围是 [100,999] (或是 [100,1000) , 这两种范围均可),可以遍历这个范围内的数字,找出满足要求的数字,打印并记下个数,当个数为2,则跳出循环
拓展:这篇文章是求3-7位数的水仙花数,有思路,代码和结果截图,可以参考一下,有帮助的话望采纳https://blog.csdn.net/m0_66473543/article/details/124896285?spm=1001.2014.3001.5502