利用自定义函数求所有的水仙花数。
问题描述:
函数单元:利用自定义函数求所有的水仙花数。
答
def a():
for num in range(100,1000):
a=num//100
b=num//10%10
c=num%10
if num==a**3+b**3+c**3:
print(num,'水仙花数')
a()
答
#include <stdio.h>
#include <math.h>
int main()
{
for(int i=100;i<1000;i++) {
if(pow(i/100%10,3)+pow(i/10%10,3)+pow(i%10,3) == i) {
printf("%d\n",i);
}
}
return 0;
}
答
def getSxhNum():
l=[]
for i in range(100,1000):
a=i%10
b=i//10%10
c=i//100
if a**3+b**3+c**3==i:
l.append(i)
return l
print(getSxhNum())
觉得有用的话采纳一下哈
答
def narcissistic_number(num):
s = str(num)
length = len(s)
if len(s) != 3:
return False
sum_num = 0
for i in s:
sum_num += int(i) ** length
return sum_num == num
result = [i for i in range(1000) if narcissistic_number(i)]
print(result)
答
def sxh():
x=int(input("请输入位数,用来求出该位数的水仙花数:"))
a=quantity=0
for i in range(10*(x-1),10*x):
pd=0
for j in range(0,x):
a=i//(10**j)%10
pd+=a**x
if pd == i:
print(i)
quantity+=1print(ws,"位数的水仙花数有",quantity,'个')
答
```python
#水仙花数为3位数,所示num必须大于100,num为循环上限
def nar():
num=100
while num<1000:
total=0
for i in str(num):
total = total + int(i)**3
if total!=num:
pass
else:
print(num)
num +=1
nar()
```
答
#include <bits/stdc++.h>
using namespace std;
int main()
{
for(int i=100;i<1000;i++) {
if(pow(i/100%10,3)+pow(i/10%10,3)+pow(i%10,3) == i) {
cout<<i;
}
}
return 0;
}