oj1272 : 무리의 덧셈

题目要求
농부 존 무리 젖소 번째 및 N (1 <= N <= 10,000,000) 1에서 연속 정수로 브랜드된다. 소가 착유를위한 헛간에 올 때, 그들은 항상 1 N.에 순차적으로 제공

대학과 사랑 숫자에서 수학을 전공 한 농부 존은 종종 패턴을 보인다. 그는 그의 무리 정확히 15 소가있는 경우, 하나 이상의 연속 젖소의 세트 번호 15 (젖소의 총 수와 동일)까지 추가 할 수있는 네 가지 방법으로 정확하게 있다는 것을 발견했다. 그들은 : 15, 8 + 7 + 6 + 4 5 1 + 2 + 3 + 4 + 5.

무리 암소의 수가 10 인 경우, 방법의 수는 그 연속 소를 요약 할 수 있으며 2에 10 방울을 얻을 : 즉 1 + 2 + 3 + 4, 10.

이 문제를 해결하기 위해 사전 계산을 사용 N. 할 일을하지 동일하게 연속 소에 숫자를 요약 할 수있는 방법 농부 존의 수를 계산하는 프로그램을 작성합니다.
입력

  • 행 1 : 단일 정수 : N의
    출력
  • 1 라인은 다음 정수 개수의 연속 암소 방법 N. SUM 브랜드 CAN에있는 싱글
    샘플 입력
    원시
    15
    샘플 출력
    원시
    . 4
    누적 무엇을 참조 할 수는 단순히 예컨대 10 1 + 2 + 3 + 도 4 및도 10의 결과는 2이다
    이전 순회 모양에서 계속 수의 수에 축적하거나 동일 원술보다 N 알고
    전체 코드
#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;
}
게시 38 개 원래 기사 · 원의 찬양 (27) · 전망 3183

추천

출처blog.csdn.net/qq_45891413/article/details/104933337