zoukankan      html  css  js  c++  java
  • OpenJudge/Poj 1844 Sum

    1.链接地址:

    http://bailian.openjudge.cn/practice/1844

    http://poj.org/problem?id=1844

    2.题目:

    Sum
    Time Limit: 1000MS   Memory Limit: 30000K
    Total Submissions: 10031   Accepted: 6564

    Description

    Consider the natural numbers from 1 to N. By associating to each number a sign (+ or -) and calculating the value of this expression we obtain a sum S. The problem is to determine for a given sum S the minimum number N for which we can obtain S by associating signs for all numbers between 1 to N.

    For a given S, find out the minimum value N in order to obtain S according to the conditions of the problem.

    Input

    The only line contains in the first line a positive integer S (0< S <= 100000) which represents the sum to be obtained.

    Output

    The output will contain the minimum number N for which the sum S can be obtained.

    Sample Input

    12

    Sample Output

    7

    Hint

    The sum 12 can be obtained from at least 7 terms in the following way: 12 = -1+2+3+4+5+6-7.

    Source

    3.思路:

    4.代码:

     1 #include "stdio.h"
     2 //#include "stdlib.h"
     3 int main()
     4 {
     5     int m;
     6     scanf("%d",&m);
     7     int k = (int)((sqrt((float)(1)+8*m)+1)/2);
     8     while((k*k+k-2*m)%4!=0)
     9     {
    10         k++;
    11     }
    12     printf("%d",k);
    13     //system("pause");
    14     return 0;
    15 }
  • 相关阅读:
    红黑树
    二叉搜索树
    散列表
    快速排序
    堆排序
    归并排序
    插入排序
    Shell脚本之:函数
    Shell脚本之:退出循环
    ACM刷题之路(四)2018暑假实验室集训——深广搜专题题解
  • 原文地址:https://www.cnblogs.com/mobileliker/p/3572429.html
Copyright © 2011-2022 走看看