• hdu 2010 水仙花数(c语言)


    hdu 2010 水仙花数

    点击做题网站链接

    题目描述

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

    Problem Description
    春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
    “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^ 3 + 5^ 3 + 3^ 3。
    现在要求输出所有在m和n范围内的水仙花数。

    Input
    输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。

    Output
    对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
    如果给定的范围内不存在水仙花数,则输出no;
    每个测试实例的输出占一行。

    Sample Input
    100 120
    300 380

    Sample Output
    no
    370 371

    题目难点

    1. 输出格式要求,见下面笔记1
    2. 用bool “开关”控制输入输出

    问题解答

    #include <stdio.h>
    int main(void)
    {
        int m,n,i,a,b,c;
        while(scanf("%d %d",&m,&n)!=EOF)
        {
            bool t=0;//用 bool定义 t为一个 “开关 ”,t=0表明开关关上了,t=1表示开关打开了
            //注意,这个开关定义在 for循环外面是为了保证每次输入数据的时候,开关都是关着的
            for(i=m;i<=n;i++)//i既控制循环次数,又充当从 m到 n的每个数字变量
            {
                a=i/100;//分解数字的百位
                b=(i-a*100)/10;//分解数字的十位
                c=i%10;//分解数字的个位
                if(i==a*a*a+b*b*b+c*c*c)//如果 i是水仙花数,则可以进行下面花括号中的操作
                {
                    if(t==1) printf(" ");//当第一次输出水仙花数的时候,开关是关上的,所以不会输出空格,
                    //保证了输出的第一个水仙花前不会出现空格导致Presentation Error
                    //也保证了如果之后再输出水仙花数,开关会被打开,而会在第二个、第三个……水仙花数之前输出空格
                    //还保证了不会奇怪的在最后一个水仙花数之后输出空格
                    printf("%d",i);
                    t=1;//只要输出过,“开关 ”就打开
                }
            }
            if(t==0) printf("no");//只有满足开关关上,即从来没有输出过水仙花数的时候才可以输出 “no”字符
            printf("
    ");//每输入输出一次都要换行
        }
    }
    

    笔记:

    1. 最毒瘤的是题目设置的输出格式,比如样例输出370(空格)371,只有两数之间有空格,370前和371后都要没有空格,关键做题的时候这个样例展示又看不清楚前后有没有空格,真是被Presentation Error坑死了!
  • 相关阅读:
    010 --- 第14章 观察者模式
    009 --- 第13章 建造者模式
    008 --- 第12章 外观模式
    007 --- 第10章 模板方法模式
    006 --- 第9章 原型模式
    redis lua 中keys[1] 和argv[1] 的理解
    redis 入门总结
    mysql 8.0 特性简单总结
    MySql事务隔离级别 浅见
    浅谈Java中的String、StringBuffer、StringBuilder
  • 原文地址:https://www.cnblogs.com/yuzilan/p/10626207.html
Copyright © 2020-2023  润新知