题目要求
Las vacas en el rebaño de granjero John están numerados y marcados con enteros consecutivos de 1 a N (1 <= N <= 10 millones). Cuando las vacas vienen a la granja para el ordeño, siempre vienen en orden secuencial de 1 a N.
Farmer John, que se especializó en matemáticas en la universidad y los números ama, a menudo busca patrones. Se ha notado que cuando tiene exactamente 15 vacas en su rebaño, no son precisamente cuatro formas en que los números en cualquier conjunto de una o más vacas consecutivos pueden añadir hasta 15 (el mismo que el número total de vacas). Ellos son: 15, 7 + 8, 4 + 5 + 6, y 1 + 2 + 3 + 4 + 5.
Cuando el número de vacas en el hato es de 10, el número de formas que puede resumir vacas consecutivos y llegar a 10 gotas 2: es decir, 1 + 2 + 3 + 4 y 10.
Escribir un programa que calcule el número de formas granjero John puede sumar los números en vacas consecutivos para igualar N. No utilizar precomputation para resolver este problema.
Entrada
- Línea 1: Un solo entero: N
Output - 1 Línea: El es un solo que número entero de vaca consecutiva Formas de N. SUMA marcas pueden
la muestra de la entrada
Raw
15 de
la muestra de la salida de
crudo
. 4
es simplemente un número para ver lo que, acumulativamente, tal como 10 a 1 + 2 + 3 + 4 y 10, el resultado es 2.
traversal anterior continúa desde el aspecto y se acumula en una serie del número, mayor que o igual Yuan Shu n sabe
el código completo
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<math.h>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int n, sum = 0, i, r = 0, k;
cin>>n;
k = n;
for (i = n; i >= 1; i--)
{
sum += i;
if (sum == n)
r++;
else if (sum > n)
sum -= k--;
}
cout<<r<<endl;
return 0;
}