三位数水仙花数基础(whlie循环的使用)

水仙花数,意思是x位数的每位数的x次方之和为本身,即我们需要判断该位数为多少,再拆分去将每位数的多少次方相加起来。以下暂未写出判断位数的程序,只输入一个三位数,让程序判断该数是否为水仙花数。

//水仙花数(基础版)
#include <stdio.h>
#include <math.h>

int main() {
	int g, m, n, sum;
	printf("enter n");
	scanf("%d", &n);
	m = n;
	while (n != 0) {
		g = n % 10;
		n = n / 10;
		sum += pow(g, 3);
	}
	if (sum == m)
		printf("yes");
	else
		printf("no");
	return 0;

}

该程序的重点在于以下这段程序


	while (n != 0) {
		g = n % 10;
		n = n / 10;
		sum += pow(g, 3);
	}

利用余10和除10的特点将每个数都能被利用到,当整数型的n为0时,意味着已经到达最高位的再前一位0,例如0153。本文章通过水仙花数从而让大家对while循环的利用更加熟悉

### 回答1: 好的,以下是代码实现: ```python while True: for i in range(100, 1000): num = str(i) sum = int(num[0])**3 + int(num[1])**3 + int(num[2])**3 if sum == i: print(i) break ``` 运行结果: ``` 153 370 371 407 ``` 这些数字就是 100 到 1000 之间的三位数水仙花数。 ### 回答2: 水仙花数是指一个三位数,其各个位上的数字的立方和等于该数本身。我们可以使用while循环来找出1到1000之间的所有水仙花数。 ```python n = 100 # 定义初始值为100 while n <= 999: # 循环条件:n小于等于999时执行 num = n # 将n赋值给num sum = 0 # 初始化各个位上的立方和为0 while num > 0: # 循环条件:num大于0时执行 digit = num % 10 # 取num的个位数 sum += digit ** 3 # 计算各个位上的立方和 num //= 10 # 更新num,将个位数去掉 if sum == n: # 如果各个位上的立方和等于n本身 print(n) # 输出水仙花数 n += 1 # 更新n,继续下一个数的判断 ``` 以上代码通过两个嵌套的while循环,分别计算各个位上的数字的立方和,并判断是否等于原数n本身,如果相等,则输出n作为水仙花数。通过这个循环,我们可以得到1到1000之间的所有三位数水仙花数。 ### 回答3: 水仙花数是指一个三位数,其各位数字的立方和等于该数本身。要找到1到1000之间的三位数水仙花数,我们可以使用循环来逐个判断每个数是否满足条件。 首先,我们可以创建一个整型变量i,并将其初始化为1。然后,我们可以使用while循环,设置循环条件为i小于等于1000。在每次循环中,我们可以通过对i进行求余运算,分别获得其百位、十位和个位上的数字。 接下来,我们可以使用if语句来判断当前的三位数是否是水仙花数。判断条件是将每个数字的立方相加,与原数i进行比较。如果相等,则打印输出当前的水仙花数。 最后,我们要记得在每次循环结束后,将i增加1,以便进行下一次循环判断。直到i大于1000时,循环结束。 以下是用300字中文回答的代码示例: ```python i = 100 # 初始化i为1 while i <= 1000: # 循环条件:i小于等于1000 bai = i // 100 # 获取百位上的数字 shi = (i // 10) % 10 # 获取十位上的数字 ge = i % 10 # 获取个位上的数字 # 判断是否为水仙花数 if bai ** 3 + shi ** 3 + ge ** 3 == i: print(i) # 输出水仙花数 i += 1 # i增加1,进行下一次循环判断 ``` 通过运行以上代码,我们可以找到1到1000之间的所有三位数水仙花数,并将其输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

c原

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

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

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

打赏作者

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

抵扣说明:

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

余额充值