Cevap :

Merhaba,

İlgili sorunuzun C++ dilinde yazılmış versiyonu aşağıdadır. Debug için döngünün kaç milisaniyede execute olduğu bilgisi de konsolda yer almaktadır. Benzer diller olduğundan, kendi çalışmalarınızda esinlenme kaynağı olarak kullanabilirsiniz. Ayrıca programda assertion() kullanımı mevcuttur. Üst limit, alt limitten küçük gelemez. Alt limit sıfırdan küçük bir değer olamaz. Eğer yanlış sınır girişi yapılırsa program çalışmayacaktır. Kolay gelsin :)

#include <bits/stdc++.h>

static double sum=0;

static int facc=1;

auto temp = std::chrono::high_resolution_clock::now();

int main(int argc, char* argv[]) {

   std::cout << "Lower bound of series: "; int lower;std::cin >> lower;

   std::cout << "\nUpper bound of series: "; int upper;std::cin >> upper;

   assert(lower>0 && upper>=lower && upper>0);

   

   std::cout << "The geometric sum is equal to: ";

   

   for(int i=lower; i<=(upper-lower)+1;i++) {

       facc=1;

       for(int j=1;j<=i+1;j++) {

           facc *=j;

       }

       sum+=facc/(pow(i+1,i+1));

   }

   auto temp1 = std::chrono::high_resolution_clock::now();

   auto exectime = std::chrono::duration_cast<std::chrono::milliseconds>(temp1-temp);

   std::cout << sum << ". \nStopped with " << exectime.count() << "ms" << std::endl;

   return 0;

}

Görseli göster Belalimod