利用自定义函数求所有的水仙花数。

利用自定义函数求所有的水仙花数。

问题描述:

                                                                       函数单元:利用自定义函数求所有的水仙花数。

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必须大于100num为循环上限

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;
}