【ACM】【杭电】用C语言实现2010

杭电2010


实现代码

这道题有点繁琐
首先要保证m<n,这时候就要用到判断语句
其次需要保证没有多余的空格
具体见代码吧,都写在注释里面了

#include<stdio.h>
int main()
{
    int m,n,x,y,z;
	int t,temp,count,i;
    while(~scanf("%d%d",&m,&n)){
        getchar();
        t=1;//t作为一个判断指针,用来判断一组数中是否有水仙花数
        //此处初始化为1表示不含
        count=0;//初始化水仙花数计数
        if(m>n){
        //此处是令m<n方便后面的运算
            temp=m;
            m=n;
            n=temp;
        }
        for(i=m; i<=n; i++){
        //从m~n开始遍历
            x=i/100;
            y=(i-x*100)/10;
            z=i%10;
            //分别用x,y,z表示个,十,百分位的数
            if(x*x*x+y*y*y+z*z*z==i){
            //判断水仙花素条件是否成立
                if(count==0) printf("%d",i);//当计数为0时输出“i”
                else printf(" %d",i);    	//当计数非0时输出“ i”
                t=0;//当成立的时候,将判断指针改为0表示含有水仙花数
                count++;//当数为水仙花数的时候,计数器加1
            }
        }
        if(t)	printf("no\n");//当不含水仙花数时输出“no”再换行
        else 	printf("\n");  //当含有水仙花数时直接换行
        //这个if语句是用来进行遍历一组数结束后的换行输出
    }
    return 0;
}

关于while(~scanf("%d%d",&a,&b))

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值