Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
1
Cevap
285
Tıklama
0
Öne Çıkarma
C++ acil Soru Çözümü Yardım!
A
5 yıl
Er
Konu Sahibi

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.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



T
5 yıl
Yarbay

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

/* 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;
}



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.