| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 378 人关注过本帖
标题:新手求指导啊,谢谢啦各位大神
只看楼主 加入收藏
韩学敏
Rank: 2
等 级:论坛游民
帖 子:52
专家分:26
注 册:2012-11-3
结帖率:82.35%
收藏
已结贴  问题点数:10 回复次数:4 
新手求指导啊,谢谢啦各位大神
输入2个正整数m和n(m>=1 n<=1000),输出m到n之间的所有水仙花数,水仙花数是指各位数字的立方和等于其自身的数。比如153,   1的三次方加5的三次方加3的三次方的和就是153。就是这样的。
我写的这个吧,我觉得用那个pow时候有问题,解决不了底数为0的时候,所以感觉有错误,后面的可能还是有错,求各位大神指点小弟啊

#include<stdio.h>
#include<math.h>
int main(void)
{
    int m,n,k,count=0;
    double result=0.0,sum=0.0;
    printf("enter m and n:");
    scanf("%d%d",&m,&n);
    for(k=m;m<=n;m++)
    {
        while(k!=0)
        {
            m=k%10;
            k=m/10;
            result=result+pow(m,3);
            count++;
            sum=sum+m*pow(10,count-1);
            if(result==sum)
                printf("%d\n",sum);
            else
                break;
        }
        m=sum;
    }
    return 0;
}
搜索更多相关主题的帖子: double include result 水仙花 
2012-11-10 23:23
菜鸟一支
Rank: 6Rank: 6
来 自:何美杭
等 级:侠之大者
威 望:1
帖 子:121
专家分:456
注 册:2012-10-10
收藏
得分:5 
程序应该没有那么复杂;
#include<stdio.h>
#include<math.h>
int main(void)
{
    int m,n,k,d,count=0,result;
    printf("enter m and n:");
    scanf("%d%d",&m,&n);
    for(;m<=n;m++)
    {    k=m;
        result=0;
        while(k!=0)
        {d=k%10;
        k=k/10;
        result=result+int(pow(d,3));}
        if(m==result)
            printf("%4d",result);
    }
    printf("\n");
    return 0;
}

小弟何美杭,所发表的都仅代表个人观点,欢迎批评指正。
2012-11-11 01:52
韩学敏
Rank: 2
等 级:论坛游民
帖 子:52
专家分:26
注 册:2012-11-3
收藏
得分:0 
回复 2楼 菜鸟一支
int(pow(d,3))  这个是怎么用的呢,加一个int是什么意思,我是新手,不清楚
2012-11-11 12:30
cyuyancqy
Rank: 2
等 级:论坛游民
帖 子:22
专家分:59
注 册:2012-10-31
收藏
得分:5 
#include<iostream.h>

int main(void)
{int t;
    int i;
    int s[3];
for(i=1;i<1000;i++)
{

   
  s[0]=i/100;
  s[1]=i%100/10;
  s[2]=i%10;
  t=s[0]*s[0]*s[0]+s[1]*s[1]*s[1]+s[2]*s[2]*s[2];
  if(t==i)
  cout<<i<<endl;



}



   
    return 0;
} 输出1到1000所有的水仙花数,不知道对不对,时间有限,自己看吧


[ 本帖最后由 cyuyancqy 于 2012-11-11 13:09 编辑 ]
2012-11-11 13:08
菜鸟一支
Rank: 6Rank: 6
来 自:何美杭
等 级:侠之大者
威 望:1
帖 子:121
专家分:456
注 册:2012-10-10
收藏
得分:0 
不好意思,这两天一直没上线。
pow(a,b)的意思就是求a的b次方。这个函数包含在<math.h>头文件中
int (a)的意思就是将a强制转换为int类型 比如 a=1.55那么int(a)就等于1
故int(pow(a,b))的作用就是将pow(a,b)的值强制转换为int型

小弟何美杭,所发表的都仅代表个人观点,欢迎批评指正。
2012-11-15 10:41
快速回复:新手求指导啊,谢谢啦各位大神
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011795 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved