黑马程序员技术交流社区

标题: 水仙花数是什么? [打印本页]

作者: 你好再见    时间: 2015-8-3 01:03
标题: 水仙花数是什么?
没听说过啊
作者: zhou_xingyu    时间: 2015-8-3 08:43
个位数平法加十位数平方等于百位数平方的数,,应该是这样
作者: 魔尊    时间: 2015-8-3 18:28
水仙花数,153=1*1*1+5*5*5+3*3*3,这种形式的数被称为水仙花数
作者: 魔尊    时间: 2015-8-3 18:30
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
//水仙花数,153=1*1*1+5*5*5+3*3*3,求100~999里面有多少个这样的数?

int getShuiXianHua_for()
{
        int ge = 0;
        int shi = 0;
        int bai = 0;
        int i = 100;
        int cnt = 0;
        for (i = 100; i <= 999; i++)
        {
                int num = i;
                ge = num % 10;
                num = num / 10;
                shi = num % 10;
                num = num/ 10;
                bai = num % 10;
                num = num / 10;

                if ((ge*ge*ge + shi*shi*shi + bai*bai*bai) == i)
                {
                        cnt++;
                }
        }

        return cnt;
}

int getShuiXianHua_while()
{
        int i = 100;
        int ge = 0;
        int shi = 0;
        int bai = 0;
        int cnt = 0;

        while (i<=999)
        {
                int num = i;
                ge = num % 10;
                num = num / 10;
                shi = num % 10;
                num /= 10;
                bai = num % 10;

                if (i == (ge*ge*ge + shi*shi*shi + bai*bai*bai))
                {
                        cnt++;
                }

                i++;
        }

        return cnt;
}

int getShuiXianHua_dowhile()
{
        int cnt = 0;
        int ge = 0;
        int bai = 0;
        int shi = 0;
        int i = 100;

        do
        {
                int num = i;
                ge = num % 10;
                num /= 10;
                shi = num % 10;
                num /= 10;
                bai = num % 10;

                if (i == (ge*ge*ge + shi*shi*shi + bai*bai*bai))
                {
                        cnt++;
                }
                i++;
        } while (i <= 999);

        return cnt;
}

int getShuiXianHua_goto()
{
        int num = 0;
        int bai = 0;
        int shi = 0;
        int ge = 0;
        int cnt = 0;
        int i = 100;

LOOP_I:
        if (i > 999)
        {
                goto END;
        }
        num = i;
        ge = num % 10;
        num /= 10;
        shi = num % 10;
        num /= 10;
        bai = num % 10;

        if ((ge*ge*ge + shi*shi*shi + bai*bai*bai) == i)
        {
                cnt++;
        }

        i++;
        goto LOOP_I;
END:
        return cnt;
}


int main()
{
        //int cnt = getShuiXianHua_for();
        //int cnt = getShuiXianHua_while();

        //int cnt = getShuiXianHua_dowhile();

        int cnt = getShuiXianHua_goto();

        printf("%d\n",cnt);

        system("pause");
        return 0;
}
作者: qq358556392    时间: 2015-8-3 18:32
#include <stdio.h>

int main(int argc, const char * argv[]) {

    for (int n = 100; n < 1000; n++) {
        int bai,shi,ge;
        bai = n/100;
        shi = n%100/10;
        ge = n%100%10;
        if (bai*bai*bai+shi*shi*shi+ge*ge*ge == n) {
            printf("%d\t",n);
        }else{
            continue;
        }
    }
   
    return 0;
}
作者: ReoWei    时间: 2015-8-3 18:47
个位数立法加十位数立方等于百位数立方的数
作者: rhyme    时间: 2015-8-3 19:30
#include <stdio.h>
int main(int argc, const char * argv[]) {
    // insert code here...
    {
        int i,j,k,n;
        printf("1000内所有的水仙花数:\n");
        for(n=100;n<1000;n++)
        {
            i=n/100;
            j=(n-i*100)/10;
            k=n%10;
            if(i*i*i+j*j*j+k*k*k==n)
               
                printf("%d\n",n);
        }
    }
}
//这个最简单
作者: QQ2544    时间: 2015-8-3 20:03
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)

还是很有趣的一种数字
作者: Maruka    时间: 2015-8-3 20:04
个位数立方加十位数立方加百位数立方之和等于数本身。例:153=1*1*1+5*5*5+3*3*3
作者: Northcity    时间: 2015-8-3 21:01
懂得自己百度啊,  搞IT 的要学会Google
作者: 温柔JC    时间: 2015-8-3 21:35
这种问题还是请教百度大神最好
作者: 年少轻_Bocv6    时间: 2015-8-3 21:43
个位数立方加十位数立方加百位数立方之和等于数本身
作者: Anne_lov    时间: 2015-8-3 21:44
qq358556392 发表于 2015-8-3 18:32
#include

int main(int argc, const char * argv[]) {

厉害!!真的学习到了!!

作者: 刘彦麟    时间: 2015-8-3 23:26
个位数立方+十位数立方+百位数立方==这个三位数
作者: 糖糖本尊    时间: 2015-8-4 00:04
就是各位的立方之和等于该数




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2