• POJ NOI MATH-7649 我家的门牌号


    问题链接POJ NOI MATH-7649 我家的门牌号



    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述

    我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。

    若所有的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。

    数据保证有唯一解。

    输入
    一个正整数n。n < 100000。
    输出
    一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。
    样例输入
    100
    样例输出
    10 15
    来源
    《奥数典型题举一反三(小学六年级)》 (ISBN 978-7-5445-2883-2) 第二章 第七讲 例2 拓展一



    问题分析

      本题的用穷举法求解。

      假设总共有k家,我家门牌号为x,那么k(k+1)/2 -2x=n,得k(k+1)-2n=4x>=4(因为x>=1)。

      推导得:(k+1)(k+1) > k(k+1)>=4+2n,最后得:k>sqrt(4+2n)-1。

    程序说明

      程序中,尽量减少穷举的数量。




    AC的C++语言程序:

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int main()
    {
        int n, mink, x;
    
        cin >> n;
    
        mink = sqrt(4 + 2 * n) - 1;
    
        for(int i=mink+1; ;i++) {
            if((i * i + i - 2 * n) % 4 == 0) {
                x = (i * i + i - 2 * n) / 4;
                if(x <= 0)
                    continue;
                cout << x << " " << i << endl;
                break;
            }
        }
    
        return 0;
    }





  • 相关阅读:
    python 之模块random
    python 迭代器
    python 生成器
    python 装饰器前之闭包和装饰器
    ELK平台搭建(下)
    ELK平台搭建(上)
    kvm 搭建
    python中的浅拷贝与深拷贝
    搭建单机版的FastDFS服务
    ASP.NET MVC Razor语法
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563959.html
Copyright © 2020-2023  润新知