C++ kodundaki hata nerede?

Sorunu anlamadan çözüm bulmaya çalışırsanız böyle boşa kürek çekersiniz.

Dersteydim, yeni bitti. Biraz düşündüm ama aklıma daha az amelece iş gelmedi. Gönderdim. Kabul etmedi. Zaten bir kısmında da süre arttı. O zaman dank etti. Senden kaç adet sayı olduğunu istiyor. Sayıların hepsini değil.

[CODE title="ilk kod"]#include <iostream>
#include <string>
#include <math.h>

bool isValid(int n) {
auto str{ std::to_string(n) };

for (auto i : str){
if ((i - '0') % 2 != 0){
return false;
}
}

return true;
}

int main() {
auto n{ 0 };
std::cin >> n;

auto end{ pow(10, n) };

for (auto i{ pow(10, n - 1) * 2 }; i < end; i += 2) {
if (isValid(i)) {
std::cout << i << "\n";
}
}
}
[/CODE]

Kod:
#include <iostream>
#include <string>
#include <math.h>

bool isValid(int n) {
    auto str{ std::to_string(n) };

    for (auto i : str){
        if ((i - '0') % 2 != 0){
            return false;
        }
    }

    return true;
}

int main() {
    auto n{ 0 };
    std::cin >> n;
    auto b{ 0 };

    auto end{ pow(10, n) };

    for (auto i{ pow(10, n - 1) * 2 }; i < end; i += 2) {
        if (isValid(i)) {
            ++b;
        }
    }

    std::cout << b;
}

4, 20, 100, 500 şeklinde gidiyor. 5 katı olduğunu fark etmişsindir herhalde. Bu yüzden kod son olarak aşağıdaki gibi oluyor.

Kod:
#include <iostream>
#include <math.h>

int main() {
    auto n{ 0 };
    std::cin >> n;
   
    std::cout << 4 * pow(5, n - 1);
}
 
o da olabilir. 3 sayı girip içinde sadece çift rakamların bulunduğu sayıyı istiyor olabilir. Pozitif doğal sayı demediğine göre 0 da dahil.
bence
Sorunu anlamadan çözüm bulmaya çalışırsanız böyle boşa kürek çekersiniz.

Dersteydim, yeni bitti. Biraz düşündüm ama aklıma daha az amelece iş gelmedi. Gönderdim. Kabul etmedi. Zaten bir kısmında da süre arttı. O zaman dank etti. Senden kaç adet sayı olduğunu istiyor. Sayıların hepsini değil.

[CODE title="ilk kod"]#include <iostream>
#include <string>
#include <math.h>

bool isValid(int n) {
auto str{ std::to_string(n) };

for (auto i : str){
if ((i - '0') % 2 != 0){
return false;
}
}

return true;
}

int main() {
auto n{ 0 };
std::cin >> n;

auto end{ pow(10, n) };

for (auto i{ pow(10, n - 1) * 2 }; i < end; i += 2) {
if (isValid(i)) {
std::cout << i << "\n";
}
}
}
[/CODE]

Kod:
#include <iostream>
#include <string>
#include <math.h>

bool isValid(int n) {
    auto str{ std::to_string(n) };

    for (auto i : str){
        if ((i - '0') % 2 != 0){
            return false;
        }
    }

    return true;
}

int main() {
    auto n{ 0 };
    std::cin >> n;
    auto b{ 0 };

    auto end{ pow(10, n) };

    for (auto i{ pow(10, n - 1) * 2 }; i < end; i += 2) {
        if (isValid(i)) {
            ++b;
        }
    }

    std::cout << b;
}

4, 20, 100, 500 şeklinde gidiyor. 5 katı olduğunu fark etmişsindir herhalde. Bu yüzden kod son olarak aşağıdaki gibi oluyor.

Kod:
#include <iostream>
#include <math.h>

int main() {
    auto n{ 0 };
    std::cin >> n;
  
    std::cout << 4 * pow(5, n - 1);
}
ben 20 oldugunu anlamamistim 16 biliyordum :)
neden 20 oldu onuda anlata bilirmisiniz son olarak/onceden tesekkurler <3
 

Geri
Yukarı