二つのアプリケーション累積カウント方法:コインの騎士とトランプマジック

騎士の金

忠実な騎士に賃金としてキングゴールド。初日、ナイトは金貨を受け、2日(日2及び3)年、毎日2枚の金貨を受け、3日後(第四、五、六日)、受け取った3人の毎日を金貨、4日後(第七、8、9、10)年には、4金を受け取った......この日の給与計算モードは、常にこのように継続します:毎日金貨を受信するとき、N N日間連続、騎士は、N + 1個の連続日後、コインはN + 1は、毎日(Nは任意の正の整数である)を与えました。あなたは日の与えられた数の初日から決定するプログラムを書く必要がある、騎士団はどのように多くの金貨の合計を獲得しました。
入力フォーマット
整数(10000から1の範囲)、日数。
出力フォーマットの
金貨騎士が得られます。
入力サンプル
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;== iは、日をn区間1に分割され、2、3日金次の区間に入った金の賃金を表します。

魔法のトランプ

カードならば、あなたはそれの半分にまで追加することができますテーブルの上にぶら下がっカードのスタックは、テーブルの上に掛け。2枚のカードならば、トップは三分の一までのデスクトップ下部の外にそのカードの半分以下の最大値、およびそのカードの外に出ます。そのため、2枚のカードは、デスクトップ全体の長さにぶら下がっ 1 / 2 + 1 / 3 = 5 / 6 / 2 + 1/3 = 5月6日 、一般的に、のnカードデスクトップ突出長さ1/2 + 1/3 +下側突出板の上部部分1/2カード、ように3枚目のカードに延び、そしてカードの第二ブロック片、及び最終的にデスクトップを拡張カード1 /(N + 1)。
入力:テストケースのセット、2進浮動小数点型には、表の必要な懸濁液の合計長さを示します。
出力:テストケースのセットは、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 ++、現在の合計<LEN時間を、nは0が初期値であり、その後、増加した長さに新しい合計を追加します。注意してください。

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

初期値N 1の場合、上記2つのコードの順序を逆転させ、そのようなことは、最終的な結果は、真の値より1大きいであろう。

おすすめ

転載: blog.csdn.net/Vickers_xiaowei/article/details/90520622