整数n、lおよびrが与えられた場合、nをAとBの2つの整数の和として表す方法の数を見つけ、l≦A≦B≦rとします。Count Sum of Representation
例
についてN = 6、L = 2およびr = 4、出力
countSumOfTwoRepresentations2(n, l, r) = 2.
なければならない2≤A A + Bとして6を書き込むためのちょうど2つの方法があります。 ≤B≤4:6 = 2 + 4と3 = 6 + 3
対処:
int countSumOfTwoRepresentations2(int n, int l, int r)
{
int count = 0;
int n1 = l;
int n2 = r;
while (n1 <= n2) {
while (n1 <= n2) {
if (n1 + n2 == n) {
count++;
}
n2--;
}
n1++;
n2 = r;
}
return count;
}
この溶液execuためにあまりにも多くの時間がかかりループ中の2つのwhileループに起因する。誰かがそれに対してより良い解決策を提案するか、私のコードにどのような変更を加えるべきか
ご質問はありますか? –
私のマシンで実行時間がどれほど遅いと考えられるかは、155μsでわかりません – davedwards
[2つの整数の境界を表すnの表現方法の数を見つける](http://stackoverflow.com/質問/ 39860021 /方法の数を見つけようとすると境界の2分の1の整数として) – Floern