学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
 21 123
发新话题
打印

征集解答(1)

征集解答(1)

算出三位水仙花数,或者n位水仙花数的解答代码
以下为老版本的经典代码。你还能写出多少种方法呢??
引用:
/********************************************************
** Highlight software by yzfy(雨中飞燕) http://yzfy.org *
*********************************************************/
#include<stdio.h>
int main(void)
{
    int i,j,k,n;
    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("%d\n",n);
        }
    }
    getchar();
    return 0;
}

TOP

要是 函数  循环 数组也酸的话 会很多  但是按你的思路    不知道 也许就 2 3种把 
------...-.-..-...-----........-------.......----.....------....||- - !

TOP

不同的代码结构但一样的算法的话只算一种

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

明白 想起来的只有2中 也许是玩疯了 大脑  生锈了
------...-.-..-...-----........-------.......----.....------....||- - !

TOP

/********************************************************
** Highlight software by yzfy(雨中飞燕) http://yzfy.org *
*********************************************************/
#include<stdio.h>
int main(void)
{
    int num;
    while(scanf("%d",&num)!=EOF)
    {
        int i,sum=0;
        for(i=num;i>0;i/=10)
            sum = sum+(i%10)*(i%10)*(i%10);
        if(sum==num) printf("%d\n",num);
    }
    return 0;
}


[ 本帖最后由 中学者 于 2008-5-10 17:33 编辑 ]
本帖最近评分记录
汇编.....

TOP

这个题目是不需要输入的,楼上的改成100-999后,也算一种
还有其它的么?至少还有两种以上

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

说明这个老师不过是井底之蛙

本帖最近评分记录
C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

我觉得做题和C关系并不大,你只不过在用你熟悉的工具来学习算法....
算法的背后就是思维的磨练....我感觉你们老师也太...
PS:我的思维好僵硬//
汇编.....

TOP

如果是我做,我用sprintf来处理。
首先来个0-9的立方表,然后枚举数,用sprintf处理后直接相加出结果,最后比较
估计这样编码量能小一点,同时效率能高一点
膜拜创造线段树的人.太强大了

TOP

提示。。。除了分解还可以组合。。。

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

 21 123
发新话题