• Sum


     

    Sum

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:2
     
    描述
    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. 
     
    输入
    The input consists N test cases.
    The only line of every test cases contains a positive integer S (0< S <= 100000) which represents the sum to be obtained.
    A zero terminate the input.
    The number of test cases is less than 100000.
    输出
    The output will contain the minimum number N for which the sum S can be obtained.
    样例输入
    3
    12
    0
    样例输出
    2
    7
     

    #include<math.h>
    #include<cstdio>

    int main()
    {
      int n,i,j;

      while(scanf("%d",&n))
      {
         if(n==0)
       break;
         for(i=(int)sqrt(2*n)-1;  ; i++)

          if((i*(i+1)/2-n)%2==0 && i*(i+1)/2-n>=0 )
        goto loop;
     
         loop: printf("%d\n",i);
      }
      return 0;
    }

  • 相关阅读:
    C++虚继承内存布局
    编译OpenJDK记录
    Node.js + Express 调研
    软件工程开发工具
    Servlets & JSP & JavaBean 参考资料
    Eclipse AST 相关资料
    Git & github 最常用操作笔记
    Java入门学习资料整理
    从变量的类型转换看C语言的思维模式
    数学地图(1)
  • 原文地址:https://www.cnblogs.com/hpuwangjunling/p/2389289.html
Copyright © 2020-2023  润新知