| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 919 人关注过本帖
标题:水仙花数
只看楼主 加入收藏
ll1512121699
Rank: 1
来 自:成都
等 级:新手上路
帖 子:27
专家分:2
注 册:2013-3-21
结帖率:77.78%
收藏
已结贴  问题点数:10 回复次数:10 
水仙花数
#include<stdio.h>
main()
{
    int m,n,i,w,a,b,c,j,s,d;
    while(scanf("%d %d",&n,&m)!=EOF)
    {
        d=0;
        j=1;
        if(m>n)
        {
            w=m;
            m=n;
            n=w;
        }
        else ;

    for(i=m;i<=n;i++)
    {
        a=i/100;
        b=i/10%10;
        c=i%10;
        s=a*a*a+b*b*b+c*c*c;
        if(i==s)
        {
            if(d!=0)
            printf(" ");
        printf("%d",i);
        d=d+1;
        j=j+1;
        }

    }
    if(j==1)
    printf("no\n");
    else
    printf("\n");
    }
}

很想知道这个程序里的d和j有什么作用啊?我想了好久也没没什么头绪,谁能帮我看看啊。
搜索更多相关主题的帖子: include 水仙花 
2013-03-28 18:38
abc594986308
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
收藏
得分:0 
回复 楼主 ll1512121699
话说1000是水仙花数么?
2013-03-28 18:45
abc594986308
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
收藏
得分:0 
回复 楼主 ll1512121699
多余的东西就去掉,说实话我也没看出来有什么用啊?
2013-03-28 18:52
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
d是控制空格的,输出第一个数前,d为0,不输出空格,第二个数千就会开始输出空格,至次把所有数用空格分开

j是控制答案的,比如 100 到 101很明显没有水仙花数,那么 j值为 0,程序就会输出 no表示没有,否则 j值必不为 0

坦白讲,这么做纯粹资源浪费


[fly]存在即是合理[/fly]
2013-03-28 18:57
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:5 
d的作用是为了输出空格的if(d!=0) printf(" ");就是说如果不是第一个水仙花就在输出这个水仙花数之前输出一个空格,和上一个水仙花数隔开的,其实这个完全可以在输出水仙花数的时候用printf("%5d",i);这样之类的代替d的判断。j的作用是判断有没有水仙花数存在,如果没有就输出no换行,否则只换行,j的初值就是1所以判断的时候是if(j==1)printf("no\n");else printf("\n");这个知道就行,个人习惯问题,楼主就不要纠结这些了。
2013-03-28 19:07
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
目测楼上用手机打字


[fly]存在即是合理[/fly]
2013-03-28 19:08
嗜血老妖
Rank: 3Rank: 3
来 自:江西
等 级:论坛游侠
威 望:2
帖 子:102
专家分:163
注 册:2013-3-25
收藏
得分:0 
d=d+1; j=j+1;其实相当于d++和j++
#include<stdio.h>
 main()
 {
     int m,n,i,w,a,b,c,j,s,d;
     while(scanf("%d %d",&n,&m)!=EOF)
     {
         d=0;
         j=1;
         if(m>n) //输入的数当满足m>n时进入if
         {
             w=m;
             m=n; // 对换m,n
             n=w;
         }
         else
 
    for(i=m;i<=n;i++)//输入的数当不满足m>n时进入
     {
         a=i/100;
         b=i/10%10;
         c=i%10;
         s=a*a*a+b*b*b+c*c*c;
         if(i==s)
         {
             if(d!=0)
             printf(" ");
         printf("%d",i);
         d=d+1; //用来存放随i的变换叠加的值
         j=j+1;
         }
 
    }
     if(j==1)
     printf("no\n");
     else
     printf("\n");
     }
 }
 

仗剑走天涯,网络论英雄。
2013-03-28 19:21
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:0 
回复 6楼 azzbcc
何以见得我是用手机打字?
2013-03-29 00:25
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
以下是引用shmilyflf在2013-3-29 00:25:57的发言:

何以见得我是用手机打字?

那么多字都挤到一块去了,一般手机打字不加空行(屏幕小),再说本来写的就慢


[fly]存在即是合理[/fly]
2013-03-29 07:22
ll1512121699
Rank: 1
来 自:成都
等 级:新手上路
帖 子:27
专家分:2
注 册:2013-3-21
收藏
得分:0 
谢谢你们的答案,我懂了。

坚持!永远坚持……
2013-03-29 14:24
快速回复:水仙花数
数据加载中...
 
   



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

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