本文目录
萌新刚学python,求水仙花数,请问哪里写错了吗
题主你好,
你的代码问题有两处,
1.在最后一句:
num += 1
这一句的缩进应该和if相同, 因为如果将 num += 1放到if下, 则只有if条件满足了, num才能加上1, 如果if条件不满足,则就成了死循环了.
举例, 就拿第1个数,100,来说吧, 因为100不等于1^3+0^3+0^3,所以100这个数在执行if语句时, 条件是不成立的, 因为if下的print()语句和num+=1都不会执行, 这样下一次循环时,num还是100, 而不是我们期望的101, 所以要把num += 1的缩进和if相同, 也就是无论if条件是否满足,我们都要给num加上1.
2.倒数第2句的print(list(num)), 要改成print(num)
代码及测试截图如下:
--------------------
另外, 我们题主的代码中的print()语句中用了列表函数, 猜测题主可能想要将结果以列表的形式输出, 代码及测试截图如下:
图中我已将和题主原代码不同的地方框选出来了,供参考.
-----
希望可以帮到题主, 欢迎追问.
python程序的功能是输入一个三位数,判断是否是水仙花数
#-*-coding:utf-8;-*- n=int(input(’请输入水仙花数’));i = n / 100;j = n / 10 % 10;k = n % 10;if n == i ** 3 + j ** 3 + k ** 3:print(’%d是水仙花数’%n);else: print(’%d不是水仙花数’%n);
Python输出水仙花数
import mathfor i in range(100,1000): tmp1 = math.pow(int(str(i)), 3) tmp2 = math.pow(int(str(i)), 3) tmp3 = math.pow(int(str(i)), 3) if i == tmp1 + tmp2 + tmp3: print i
python水仙花数的编程是什么
def demo():
temp =
for i in range(100, 1000):
a = i // 100 # 百位
b = i // 10 % 10 # 十位
c = i % 10 # 个位
if a ** 3 + b ** 3 + c ** 3 == i:
temp.append(str(i))
return “,“.join(temp)
print(“1000以内的水仙花数有:{}“.format(demo()))
用C语言实现水仙花数:
#include 《stdio.h》
#include 《stdlib.h》
int main()
{
int i,j,k,n;
printf(“’water flower’number is:“);
for(n=100;n《1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(n==i*i*i+j*j*j+k*k*k)
{
printf(“%-5d“,n);
}
}
printf(“\n“);
return 0;
}
python使用函数实现水仙花数
答: 首先要明白水仙花数的定义,它是指一个三位数,它的每个位上的数字的三次幂之和等于它本身。所以问题就转化为我们如何将三位数的个位、十位和百位都表示出来。然后再遍历100~999的每一个数字去判断其是否为水仙花数。具体代码如下所示。
最终的运行结果如下,水仙花数总共有4个,具体如图片所示。