購入するシートのパック数をカウントするC++コード
k、n、s、pの4つの数があるとします。紙飛行機を作るには、長方形の紙を使います。標準サイズのシートから数機の飛行機を作ることができます。 k人のグループがそれぞれn機の飛行機を作ることにしました。彼らは数パックの紙を購入し、それぞれにp枚のシートが入っており、他の人にそのシートを配布します。各人はn個の異なる飛行機を作るのに十分なシートを持っている必要があります。購入するパックの数を数える必要がありますか?
したがって、入力がk=5のような場合。 n =3; s =2; p =3の場合、4パックの紙を購入する必要があるため、出力は4になります。合計で12枚になり、1人に2枚ずつ与えます。
ステップ
これを解決するには、次の手順に従います-
ans := k * ((n + s - 1) / s) return (ans + p - 1) / p
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; int solve(int k, int n, int s, int p){ int ans = k * ((n + s - 1) / s); return (ans + p - 1) / p; } int main(){ int k = 5; int n = 3; int s = 2; int p = 3; cout << solve(k, n, s, p) << endl; }
入力
5, 3, 2, 3
出力
4
-
C++のグレイコード
グレイコードは、2つの連続する値が1ビットだけ異なる2進数システムであることがわかっています。コード内のビットの総数を表す非負の整数nがあるとします。グレイコードのシーケンスを印刷する必要があります。グレイコードシーケンスは0で始まる必要があります。したがって、入力が2の場合、結果は[0,1,3,2]になります。これは、0のグレイが00、1のグレイが01、2のグレイが11、3の灰色は10です。 これを解決するには、次の手順に従います- 1つのアレイを作成します 各数値のグレイコードを見つけて、それらをans配列に追加します。 灰色に変換するには、数値を取得し、数値を1ビット右にシフトした後に
-
C++での算術数
算術数は、すべての正の除数の平均が整数である数です。つまり、除数の数が除数の合計を除算できる場合、nは算術数です。 概念をよりよく理解するために例を見てみましょう。 Input : n = 6 Output : YES Explanation : Divisors are 1 , 2 , 3 , 6 Sum = 1+2+3+6 = 12 Number of divisors = 4 Sum of divisors / number of divisor = 12 / 4 = 3 アルゴリズム Step 1 : Calculate the sum of divisors and store i