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 cevap

int)(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