注册 登录
编程论坛 VC++/MFC

请教高手帮我看下“水仙花数”下面代码有什么问题?

sy8723733 发布于 2011-03-27 19:41, 469 次点击
请编写一个函数,输出所有在m和n范围内的水仙花数
#include<iostream>
using namespace std;
int main()
{
    int m,n;
    void shui(int,int);
    cin>>m>>n;
    while(m!=0||n!=0)
    {
        shui(m,n);
        cin>>m>>n;
    }
    return 0;
}
void shui(int m,int n)
{
    int i,z,j=0;
    for(i=m;i<=n;i++)
    {
        z=(i/100)*(i/100)*(i/100)+(i%100/10)*(i%100/10)*(i%100/10)+(i%10)*(i%10)*(i%10);
        if(z==i)
        {   
            cout<<i;
            j++;
        }
    }
    if(j==0)
        cout<<"no"<<endl;
   

}
1 回复
#2
yuccn2011-03-28 12:02
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)

就这个定义,你的算法就出现问题了
建议你还是先弄明白什么是 水仙花数,在写算法吧

如果数据是四位数,你的算法还是3次方?


[ 本帖最后由 yuccn 于 2011-3-28 12:04 编辑 ]
1