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.
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; }
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 Ol Şimdi DeğilÜ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.