C语言:用程序求水仙花数

水仙花数又称阿姆斯特朗数,严格意义上讲,若3位正整数中各位数字立方和等于该数本身,则该正整数为水仙花数。

#include<stdio.h>
int main()
{
	int x, y, z, m;
	printf("水仙花数 :\n");
	for (m = 100; m < 1000; m++)
	{
		x = m / 100;
		y = (m / 10) % 10;
		z = m % 10;
		if (m == x * x * x + y * y * y + z * z * z)
		{
			printf("%6d", m);
		}
	}
}

运行结果:

 

  • 15
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 当然可以,以下是用C语言写的水仙花数程序: ```c #include <stdio.h> int main() { int num, originalNum, remainder, result = 0; printf("请输入一个三位数: "); scanf("%d", &num); originalNum = num; while (originalNum != 0) { remainder = originalNum % 10; result += remainder * remainder * remainder; originalNum /= 10; } if (result == num) { printf("%d是水仙花数。\n", num); } else { printf("%d不是水仙花数。\n", num); } return 0; } ``` 这个程序可以让用户输入一个三位数,然后判断这个数是否为水仙花数水仙花数是指一个三位数,它的每个位上的数字的立方和等于它本身。例如,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。 ### 回答2: 水仙花数指的是找出一个三位数中的所有水仙花数水仙花数是指一个三位数各个位上的数字的立方和等于该数字本身。具体的C语言代码如下: ```c #include <stdio.h> int main() { int num, digit, sum, temp; printf("三位数中的水仙花数有:\n"); for(num = 100; num <= 999; num++) { temp = num; sum = 0; while(temp != 0) { digit = temp % 10; // 取个位数 sum += digit * digit * digit; // 将每个位上数字的立方累加 temp /= 10; // 去掉已经计算过的个位数 } if(sum == num) { printf("%d ", num); } } return 0; } ``` 上述代码使用了for循环遍历所有三位数,然后通过while循环和取模运算,将该数的每个位上的数字进行立方和。最后,判断立方和是否等于该三位数本身,如果相等,则打印该数,符合水仙花数的条件。 ### 回答3: 水仙花数,也被称为自恋数或阿姆斯特朗数,指的是一个n位数,其各位数字的n次方相加等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。 下面是用C语言编写水仙花数程序: ```c #include <stdio.h> #include <math.h> int main() { int i, n, num, digit, sum; // 输入一个正整数n,表示需要找出n位数的水仙花数 printf("请输入一个正整数n:"); scanf("%d", &n); printf("%d位数的水仙花数有:", n); // 寻找n位数的水仙花数 for (i = pow(10, n-1); i < pow(10, n); i++) { num = i; sum = 0; // 计算num的每一位数的n次方并累加 while (num > 0) { digit = num % 10; sum += pow(digit, n); num /= 10; } // 如果相加等于原数,则打印该水仙花数 if (i == sum) { printf("%d ", i); } } return 0; } ``` 在程序中,首先要用户输入一个正整数n,表示需要找出n位数的水仙花数。然后,使用一个for循环遍历从10^(n-1)到10^n范围内的所有数。在每次循环中,将当前数赋给变量num,并将sum设为0。然后使用一个while循环,通过取num的个位数并计算其n次方,并将结果累加到sum中,同时将num除以10使其右移一位,继续计算下一位数的n次方。最后,判断sum是否等于原来的数i,如果是,则说明i是水仙花数,将其打印出来。 以上就是使用C语言编写水仙花数程序程序可以根据用户输入的n,找出对应位数的水仙花数,并将其打印出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃橘子的橘猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值