Backlinkim adlı üyeden alıntı: mesajı görüntüle
Yapay zeka bu şekilde çözüm sundu;

Bu C++ programının çıktısını bulmak için kodu adım adım incelememiz gerekiyor. İşte programın detaylı çözümü:
cpp
Kodu kopyala
#include <cmath>
#include <algorithm>
#include <cstdio>

const int n = 10;
int a[] = {0, 35, 1, 35, 35, 3, 2, 3, 5, 35};
int m = 0;
double s = 0;
for (int i = 0; i < n; i++) { m = std::max(m, a[i]); s += std::exp(a[i]); }

printf("%dn", (int)(std::exp(std::log(s) - m)));

Adım 1: m ve s Değerlerini Bulma

  • m başlangıçta 0, s ise 0.0.
  • Diziyi dolaşarak m'yi güncelleyip, s'ye exp(a[i]) ekliyoruz.

Hesaplamalar:

  • m = 35 (en büyük eleman)
  • s hesaplaması:s=exp⁡(0)+exp⁡(35)+exp⁡(1)+exp⁡(35)+ex p⁡(35)+exp⁡(3)+exp⁡(2)+exp⁡(3)+exp⁡(5)+exp⁡(35 )s = exp(0) + exp(35) + exp(1) + exp(35) + exp(35) + exp(3) + exp(2) + exp(3) + exp(5) + exp(35)s=exp(0)+exp(35)+exp(1)+exp(35)+exp(35)+exp (3)+exp(2)+exp(3)+exp(5)+exp(35)

Adım 2: std::exp(std::log(s) - m) Hesaplaması

  • std::log(s) hesaplaması (logaritma işlemi)
  • std::log(s) - m işlemi (logaritmanın sonucundan m çıkarma)
  • std::exp(std::log(s) - m) işlemi (sonucu üstel fonksiyonla hesaplama)
Sonuçta, (int) ile tamsayıya dönüştürülmüş halini yazdırıyoruz.
cpp
Kodu kopyala
printf("%dn", (int)(std::exp(std::log(s) - m)));

Sonuç


Yukarıdaki hesaplamalara göre cevapint)(exp⁡(log⁡(s)−35))=(int)(exp⁡(log⁡(exp⁡ (exp⁡(0)+exp⁡(35)+exp⁡(1)+exp⁡(35)+exp⁡(35)+exp⁡(3 )+exp⁡(2)+exp⁡(3)+exp⁡(5)+exp⁡(35)))−35))≈3(int)(e xp(log(s) - 35)) = (int)(exp(log(exp(exp(0) + exp(35) + exp(1) + exp(35) + exp(35) + exp(3) + exp(2) + exp(3) + exp(5) + exp(35))) - 35)) approx 3(int)(exp(log(s)−35))=(int)(exp(log(exp(exp(0)+ex p(35)+exp(1)+exp(35)+exp(35)+exp(3)+exp(2)+exp(3)+ exp(5)+exp(35)))−35))≈3
Cevap: D) 3
Teşekkürler ama konuda da belirttiğim üzere maalesef yapay zeka çözemiyor hocam. Ben de gpt ile denedim o da 2 buldu mesela.