두 응용 프로그램을 누적 계산 방법 : 동전의 기사와 카드 놀이 마법

기사의 금

충성하는 기사에게 지급되는 임금 등 임금 골드. 매일 받아, 두 개의 금화를 두 일 (일 두 세) 년; 첫 날, 나이트 금화를받은 삼일 후에 (네 번째, 다섯 6 일), 매일 세를 받았다 , N N 일 연속 매일 금화를받을 :; 금화는 나중에 4 일 (일곱, 여덟, 아홉, 열) 년, ......이 일 급여 모드는 항상 이런 식으로 계속 네 개의 금메달을 받았다 기사는 N + 1의 연속 일 후, 동전은 N + 1 매일 (N은 양의 정수이다) 받았다. 당신은 일의 주어진 수의 첫날부터 결정하는 프로그램을 작성해야, 기사 얼마나 많은 금화의 총을 수상했다.
입력 포맷
은 정수 (1~10000의 범위) 일 수.
출력 형식
의 기사를 얻을 금화.
입력 샘플
6
샘플 출력
(14)

#include<iostream>
using namespace std;
int main()
{
	int n;
	while (cin >> n){
		int money = 1, day = 1, sum = 0;//当前的金币数money、来了第day天了、累积钱数sum
		for (int i = 1; i <= n; i++){
			sum += money;
			if (i == day){
				money++;
				day += money;
			}
		}
		cout << sum << endl;
	}
}

이러한 입력 육일로, day += money;하루 1, 2, 세 금, 난 == 일 골드 임금이 다음 구간에 들어간 나타내는 N 구간으로 분할된다.

매직 카드 놀이

이 테이블에 걸려의 테이블에 매달려 카드의 스택, 카드, 당신은 절반을 추가 할 수 있습니다. 두 카드 경우, 상단은 그 카드 아래 절반의 최대 1/3에 바탕 화면까지의 바닥 중 그 카드의 외출. 따라서,이 카드는 바탕 화면 전체 길이에 매달려 1 / + 1 / = 5 / 6 2분의 1 + 1 / 3의 = 5 / 6 , 통상의 N- 카드 바탕 돌출 길이 1/2 + 1/3 +하부 판의 돌출 상부 편 1/2 카드 등등 세번째 카드 연장하고, 카드의 제 2 블록 부재, 마지막 바탕 확장 카드 (1) / (N + 1).
입력 : 테스트 케이스 세트 개의 부동 소수점 형식은, 상기 테이블의 요구 현탁액의 전체 길이를 나타낸다.
출력 : 테스트 케이스의 집합은 하나 개의 출력에, 카드의 최소 수를 필요로 해당합니다.
입력 샘플 :
1.00
3.71
0.04
5.19
출력 :
. 3
(61)은
(1).
273

#include<iostream>
using namespace std;
int main()
{
	double len;
	while (cin >> len){
		double sum = 0;
		int n = 0;
		while (sum < len){
			n++;
			sum += 1.0 / (n + 1);
		}
		cout << n << endl;
	}
}

현재 합이 다음 N ++, N, 0은 초기 값 LEN 시간 <하고 증가 된 길이에 새로운 합을 추가 참고.

n++;sum += 1.0 / (n + 1);

초기 값 n (1)는 상기 코드의 상기 두 반대 순서는 최종 결과는 실제 값보다 하나 큰 이도록 경우.

추천

출처blog.csdn.net/Vickers_xiaowei/article/details/90520622