美文网首页
蓝桥-- 生日蜡烛

蓝桥-- 生日蜡烛

作者: Tedisaname | 来源:发表于2018-11-17 12:37 被阅读21次

    某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。

    现在算起来,他一共吹熄了236根蜡烛。

    请问,他从多少岁开始过生日party的?

    请填写他开始过生日party的年龄数。
    注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
    思路:
    求解此问题只需要采用循环进行枚举即可。需要对年龄的范围进行限定,0~100之间进行枚举。由于原问题只要求求出某君从某年开始吹蜡烛的,所以只需要输出循环中某个连续整数相加起始的那个整数即可。

    #include <iostream>
    using namespace std;
    int main()
    {
        for(int i = 0; i < 100; i++){
            int sum = 0;//一定要初始化 ,否则输出结果为0
            for(int j = i;;j++){
                sum += j;//从年龄i开始,往后累加一直加到要求的条件位置
                if(sum > 236)//若从年龄i累加,超过了236,终止循环
                {
                    break;
                }
                if(sum == 236){//若从年龄i累加,刚好等于236,则开始吹蜡烛的年龄即为开始过生日的年龄。
                    cout << i << endl;
                }
            }
        }
        return 0;
    }
    
    //the result of print:
    26
    --------------------------------
    Process exited after 0.01422 seconds with return value 0
    请按任意键继续. . .
    

    解决这个问题以后我想查看一下是哪几个数字累加后等于236根蜡烛的,于是我书
    写了showAccu()这个函数用来查看这些累加数字。

    #include <iostream>
    using namespace std;
    
    void showAccu(int n)//显示从年龄i到年龄累加和为指定数之间的年龄的数字
    {
        int sum = 0;
        for(int i = n; sum < 236; i++){
            sum += i;
            cout << i << " ";//输出其年龄
            
        }
    }
    
    int main()
    {
        int temp;
        for(int i = 0; i < 100; i++){
            int sum = 0;//初始化 
            for(int j = i;;j++){
                sum += j;
                if(sum > 236)
                {
                    break;
                }
                if(sum == 236){
                    temp = i;//将其开始吹蜡烛的时间保存起来,作为参数传值
                    cout << i << endl;
                }
            }
        }
        showAccu(temp);
        return 0;
    }
    
    //the result of print:
    26
    26 27 28 29 30 31 32 33
    --------------------------------
    Process exited after 0.06442 seconds with return value 0
    请按任意键继续. . .
    

    You can leave me a message if you find out anything incorrect in my diary, I'll correct it, thanks.

    相关文章

      网友评论

          本文标题:蓝桥-- 生日蜡烛

          本文链接:https://www.haomeiwen.com/subject/oyvbfqtx.html