关于余数

han_v 2009-06-11 10:58:13
求1000以内的水仙花数,所谓水仙花数是指三位数其各位数字立方和等于该数本身。例如:371=3*3*3+7*7*7+1*1*1
#include<iostream.h>
void main()
{
int n,m,s,v;
cout<<"请输入一个1000以内的数字:"<<endl;
cin>>n;
v=n;
for(int i=1;i<4;i++)
{
m=n%10;
s=s+m*m*m;
n=(n-m)/10;
★cout<<m<<s<<n<<endl;
}
if(s==v)
{
cout<<"1000以内的水仙花是"<<endl;
cout<<s<<endl;
}
}

我输入371,但输出不了结果。
于是我就是在★标记处加了一条,结果居然是

请问哪出错了,我的编译环境是visual c++6.0。
...全文
108 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2009-06-12
  • 打赏
  • 举报
回复
3位数的水仙花数的求法:

  #include <stdio.h>
  int main(void)
  {
    int a,b,c;
    for(a=1; a< 10; a++)
    for(b=0; b< 10; b++)
    for(c=0; c< 10; c++)
    if((100*a+10*b+c) == (a*a*a+b*b*b+c*c*c))
    {
      printf("%d%d%d\n",a,b,c);
    }
    return 0;
  }
pathuang68 2009-06-11
  • 打赏
  • 举报
回复
这个题目很有意思:)
han_v 2009-06-11
  • 打赏
  • 举报
回复
明白了,各位老师。谢谢
adventurelw 2009-06-11
  • 打赏
  • 举报
回复
s没有初始化,所以s使用的是内存中的原有数据,出现任何结果都不奇怪,那么一长串,是因为你三个数之间没有空格。。。
s初始化为0就好了。
Ryanwen 2009-06-11
  • 打赏
  • 举报
回复
S 没初始化 值是随机的 要么就是0xccccccccc
neohope 2009-06-11
  • 打赏
  • 举报
回复
s没有初始化,里面是脏数据
han_v 2009-06-11
  • 打赏
  • 举报
回复
但为什么会取余数会出来那么一长串数字呢?
npuhuxl 2009-06-11
  • 打赏
  • 举报
回复
s = 0;

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧