首页 > 试题广场 >

打印出1000以内的所有的 "水仙花数 

[问答题]

打印出1000以内的所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

for a in range(1,10):
    for b in range(0,10):
        for c in range(0,10):
            if a*100+b*10+c==a**3+b**3+c**3:
                print(a*100+b*10+c)
发表于 2019-12-24 18:04:27 回复(0)
#include <stdio.h>
main()
{int a,b,c,i;
for(i=0;i<1000;i++)
{a=i/100;
 b=i/10%10;
c=i%10;
if(i=a**3+b**3+c**3)
printf("%d",i)
}
}
发表于 2019-12-26 17:35:31 回复(0)
for (int i=100; i<1000; i++) {
            int bai = i/100;
            int shi = i/10%10;
            int ge = i%10;
            if(i == (bai*bai*bai + shi*shi*shi + ge*ge*ge)) {
                System.out.println(i+"\n");
            }
        }

发表于 2019-12-04 14:50:16 回复(0)
for i in range(100,1000):
    sum_pow = (i//100)**3 + ((i//10)%10)**3 + (i%10)**3
    if sum_pow == i:
        print(i)
发表于 2020-08-31 22:42:48 回复(0)
public class Test{
public static void main(String[] args){
int m;
System.out.print(“所有水仙花数”);
for(int n=1;n<1000;n++){
m=(int)Math.pow(n/100,3)+(int)Math.pow(n/10%10,3)+(int)Math.pow(n%10,3);
if(n==m){
System.out.print(n+"");
发表于 2020-07-25 23:04:43 回复(0)
for i in range(100,1000):
    if i == int(str(i)[0])**3+int(str(i)[1])**3+int(str(i)[2])**3:
        print(i)
发表于 2020-01-07 16:19:24 回复(0)
#include <stdio.h>
int main()
{
    int j, k, m, n;
    printf("result is:");
    for( n=100; n<1000; n++ )
    {
        j = n / 100;
        k = (n-j*100) / 10;
        m = n % 10;
        if(n == j*j*j + k*k*k + m*m*m)
            printf("%d  ", n);
    }
    printf("\n");
   
    return 0;
}

发表于 2020-10-11 08:50:31 回复(0)
for i in range(100,1000):
    j=0
    for x in str(i):
        j+=int(x)**3
    if i==j:
        print("100~999的水仙花数:",j)

发表于 2020-09-30 07:59:14 回复(0)
for number in range(100,1000):
       a=number//100
       b=number%100//10
        c=number%10
        if a**3+b**3+c**3==number:
            print(number)

发表于 2020-08-28 17:14:26 回复(0)
#include<stdio.h>
#include<math.h>
int main(){
    int a,b,c,i;
    for(i=100;i<1000;i++){
    a=i/100;
    b=(i/10)%10;
    c=i%10;    
        if(i==a*a*a+b*b*b+c*c*c){
        
        printf("%4d",i);}
    }
    
}
发表于 2020-08-26 20:01:34 回复(0)
#include <iostream>
using namespace std;
int main()
{
 for(int i=100;i<1000;++i){
 int num=i;
 int sum=0;
 while(num){
 int a=num%10;
 sum+=a*a*a;
 num=num/10;
 }
 if(i==sum){
 cout<<sum<<endl;
 }
 }
 return 0;
}
发表于 2020-08-08 13:44:45 回复(0)
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);

		for (int i = 1; i <= 1000; i++) {
			int n = i;
			int sum = 0;
			while (n > 0) {
				sum = (int) (sum + Math.pow(n % 10, 3));
				n = n / 10;
			}
			if (sum == i) {
				System.out.println(i);
			}

		}
	}

}


发表于 2020-08-08 11:18:49 回复(0)
解法1:遍历100到999,分别取个位、十位、百位
解法2:3层循环

1000以内水仙花数:153,370,371,407
编辑于 2020-08-07 15:46:34 回复(0)
res = []
for i in range(100, 1000):
    i = str(i)
    if (int(i[0])**3 + int(i[1])**3 + int(i[2])**3) == int(i):
        res.append(i)
print(' '.join(res))

发表于 2020-08-07 14:40:10 回复(0)
for x in range(1, 10):
    for y in range(0, 10):
        for z in range(0, 10):
            if 100*x+10*y+z == x**3 + y**3 + z**3:
                print(100*x+10*y+z)

发表于 2020-08-05 08:49:54 回复(0)
for i in range(100,1001):
    res = 0
    k = i
    while k:
        j = k%10
        res+=pow(j,3)
        k//=10
    if res==i:
        print(i)
发表于 2020-08-02 09:55:18 回复(0)
for i in range(1, 10):
    for j in range(10):
        for k in range(10):
            num = int(str(i) + str(j) + str(k))
            if i**3 + j**3 + k**3 == num:
                print(num)
发表于 2020-06-23 15:59:15 回复(0)
#include<iostream>
using namespace std;
int num[] = {0,1,8,27,64,125,216,343,512,729};
int main() 
{        
    int t;
    for (int i = 100; i < 1000; i++)
    {
        int g = 0;
        int s = 0;
        int b = 0;
        b = i / 100;
        t = i % 100;
        s = t / 10;
        g = t % 10;
        if (i == (num[b]+num[s]+num[g]))
            cout << i << endl;
    }
    return 0;
}
发表于 2020-05-27 10:43:17 回复(0)
def mm():
    for i in range(100,1001):
        j=i
        n=i//100
        i=i-n*100
        m=i//10
        i=i-m*10
        k=i
        if n**3+m**3+k**3==j:
            print(j)
if __name__=='__main__':
    mm()

发表于 2020-04-16 14:59:02 回复(0)

for each in range(100,1000):

temp = each

sum = 0

while temp:

sum=sum+(temp/10)**3

temp=temp//10

if each==sum:

print (each)

发表于 2020-04-15 13:41:01 回复(0)