2012-03-28 9 views
1

誰も私に時間の数の数式を作成する方法を教えてもらえますか?次のコードで実行されますか?ネストされたループから数学的表現を作成する

私は 'iループ'がn/P回繰り返すことを理解しており、合計++を知っています。 「iループ反復」*「jループ反復」の合計を実行します。しかし、私はnとPの点でこれから数学的表現を得る方法を知らない。

#include <iostream> 

using namespace std; 

int total = 0; 
int n = 20; 
int P = 2; 
int id = 1; 
int test = 0; 

int main() 
{ 

    for (int i = id*n/P; i < ((1+id)*n/P); i++) 
    { 
     cout << i << endl; 
     test++; 
     for (int j = 1; j <= i-1; j++) { 
      total++; 
     } 
    } 

    cout << test << endl; 
    cout << total; 
    return 0; 
} 
+0

ヒント:ネストされたループは、外側のループが実行されるたびにもう一度実行されます。 (sum1、n)= n *(n + 1)/ 2のよく知られた公式がある。ループは1から始まらないことに注意してください。 – Attila

+1

ああ、このループはよくわかります、それはOです(宿題^ 2) –

+0

外側のループが1回実行されるとどうなりますか?二倍? 3回?可能な一般的なルールが見えますか?あなたは誘導によってそれを証明できますか? –

答えて

0

整数の合計を調べる。

内部ループは、iの一連の整数値のそれぞれに対して、ある値から開始してもう一方の値に実行されるi回実行されます。 1から最初の値までの整数と1から他の整数の和をとった場合、違いがあなたの答えです。

1からnまでの整数の合計は、学習に値する数式です。

関連する問題