zoukankan      html  css  js  c++  java
  • JHDU 2601 An easy problem (数学 )

    title: An easy problem 数学 杭电2601
    tags: [数学]
    题目链接

    Problem Description

    When Teddy was a child , he was always thinking about some simple math problems ,such as “What it’s 1 cup of water plus 1 pile of dough ..” , “100 yuan buy 100 pig” .etc..

    One day Teddy met a old man in his dream , in that dream the man whose name was“RuLai” gave Teddy a

    problem :
    Given an N , can you calculate how many ways to write N as i * j + i + j (0 < i <= j) ?
    Teddy found the answer when N was less than 10…but if N get bigger , he found it was too difficult for him to solve.
    Well , you clever ACMers ,could you help little Teddy to solve this problem and let him have a good dream ?

    Input

    The first line contain a T(T <= 2000) . followed by T lines ,each line contain an integer N (0<=N <= 1010).

    Output

    For each case, output the number of ways in one line.

    Sample Input

    2
    1
    3
    Sample Output

    0
    1

    分析:

    注意到 ( i +1 ) * ( j + 1 ) = i * j + i + j + 1= n + 1;而且这里的 n 比较大,只能跑一层循环

    代码:

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #define LL long long
    using namespace std;
    LL n;
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%lld",&n);
            int ans=0;
            for(LL i=2; i*i<=n+1; i++)
            {
                if((n+1)%i==0)
                    ans++;
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    
  • 相关阅读:
    PostgreSQL操作-psql基本命令
    python 解决抓取网页中的中文显示乱码问题
    1018: [SHOI2008]堵塞的交通traffic
    1015: [JSOI2008]星球大战starwar
    1057: [ZJOI2007]棋盘制作
    1022: [SHOI2008]小约翰的游戏John
    1059: [ZJOI2007]矩阵游戏
    1206: [HNOI2005]虚拟内存
    1201: [HNOI2005]数三角形
    1003: [ZJOI2006]物流运输trans
  • 原文地址:https://www.cnblogs.com/cmmdc/p/6809856.html
Copyright © 2011-2022 走看看