zoukankan      html  css  js  c++  java
  • 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;
    }





  • 相关阅读:
    HDU 5608
    win10 UWP 九幽数据分析
    win10 UWP 九幽数据分析
    win10 UWP 九幽数据分析
    博客发在win10.me
    博客发在win10.me
    博客发在win10.me
    win10 UWP 圆形等待
    win10 UWP 圆形等待
    win10 UWP 圆形等待
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563959.html
Copyright © 2011-2022 走看看