Description
For a given S, find out the minimum value N in order to obtain S according to the conditions of the problem.
Input
Output
Sample Input
12
Sample Output
7
这道题乍看一下有点摸不着头脑~
但实际就是求sum=1+2+3+4+……+n~
当sum除以input的余数为偶数时~n为所求位数~
因为若余2*k~
当k=1时~将+1改为-1就行~
当k=2时~将+2改为-2就行~以此类推~
当余数为奇数时~则只需继续循环~加上n+1~这样余数就为偶数了~
下面是代码~
#include"stdio.h"
int main()
{
int s;
int n;
int sum;
while(scanf("%d",&s)!=EOF)
{
sum=1;
n=1;
while((sum-s)%2==1||sum<s)
{
n++;
sum+=n;
}
printf("%d\n",n);
}
return 0;
}