Şimdi Ara

C++ acil Soru Çözümü Yardım!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
203
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri
  • Son Yorum 2 yıl
  • Cevaplayan Üyeler 2
  • Konu Sahibinin Yazdıkları 1
  • Ortalama Mesaj Aralığı 3 saat 48 dakika
  • Konuya En Çok Yazanlar
  • ank069906 (1 mesaj) Tuğkan-0153 (1 mesaj)
  • Konuya Yazanların Platform Dağılımı
  • Masaüstü (2 mesaj)
  • @
0 oy
Öne Çıkar
Giriş
Mesaj
  • Aşağıda yazdığım basit programlamaya giriş sorusunu doğru bir şekilde yapıp, uygulamanın çalışan kodlarını atabilecek bir hayırsever aranıyor. Yardımlarınız için teşekkür ederim.

    Uygulama : Üç basamaklı sayıların kaçında ilk iki basamağın toplamı son iki basamağın toplamına eşittir. Sorusu için bir yazılım programı geliştiriniz.




    |
    |
  • Soruda gereksiz bir kısım var. 3 basamaklı sayının ilk iki basamağı ile son iki basamağı denilince ortadaki basamak aynı olduğu için gereksiz. yani ilk basamak ile son basamak aynı diye sorulsa daha mantıklı olurdu. Öyle sorulduğunu varsayarak c++1z ile şöyle bir çözüm düşünülebilir


    Kod

    Yığını:
    /* 15.Ocak.2021  Üç basamaklı sayıların kaçında ilk iki basamağın toplamı son iki basamağın toplamına eşittir. Sorusu için bir yazılım programı geliştiriniz.*/ #include <stdio.h> #include <string.h> #include <algorithm> #include <iostream> #include <vector> #include <numeric> //iota için using namespace std; int* basamaklari_cikar(int rakam) { // helper/yardımcı işlev: int sayının basamaklarını çıkarır   char str_rakam [10];     sprintf(str_rakam,"%d",rakam); // itoa   int boyut=strlen(str_rakam);   int *basamaklar = new int(boyut);   char buf[2];   for (int i=0; i < boyut; i++) {     memcpy(buf, &str_rakam[i], 1);     basamaklar[i]=atoi(buf); }   basamaklar[boyut]='\0';   return basamaklar;} int main() {   vector<int> seq (900); //100-999 arası sayıların adeti (hardcoded olsa da..)   iota(begin(seq),end(seq),100); // iota C++'da Python daki range leri oluşturmanın pratik yoludur   vector<int> sonuc(seq.size()); // sonuc 'arın tutulacağı vektör. Alttaki satır ise Perl'deki grep'i simule eder   auto son = copy_if(cbegin(seq),cend(seq),begin(sonuc),[](int n){int *bas=basamaklari_cikar(n);return bas[0]==bas[2];});   sonuc.erase(son,sonuc.end()); // grep simulasyonu nun son adımı: filtrelenen verileri silmek   for_each(sonuc.begin(),sonuc.end(), [](auto& token) { cout << token << ", "; }); // fonksiyonel tarzda vektör içeriğini bas   cout << endl << "adet: " << sonuc.size() << endl; }




- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.