Nie mogę rozwiązać problemu algorytmu z warunkiem.

0

Witam chodzę do 2TI i mam zadanie z informatyki roz. a mój problem polega na podzielności liczby 3 oraz 4 jednocześnie jak na zdjęciu jakieś pomysły tak bym cokolwiek zrozumiał jako początkujący ?

screenshot-20191019113352.png

1

Drugi if. Po co sprawdzasz czy warunki w nawiasach są równe?

2

Sprawdzenie czy warunki są równe będzie prawdziwe również gdy oba nie będą podzielne. Ponadto:

  1. Nie duplikuj kodu, masz idealnego kandydata na funkcję.
  2. Nie wklejaj obrazków kodu, tylko kod. https://dsp.krzaq.cc/post/445/jak-zadawac-pytania-na-forum/
0

chciałem zrobić żeby liczba była jednocześnie podzielna przez 3 i 4

1

A jaki operator logiczny jest prawdziwy gdy jego dwa wejścia są prawdziwe?

0

bramka AND ?

0

No właśnie. To dlaczego używasz == zamiast &&?

0

Szczerze to teraz nie wiem jak to pisałem to myślałem ze tak będzie lepiej ale jednak się okazało ze to tak nie działa i wpadłem w dziurę gdzie nie wiedziałem co zrobić. Dziękuję.

0

Bardziej ogólnie:

#include <iostream>
#include <numeric>
#include <vector>

using namespace std;

template< typename T >
bool isNumberDivide( T number , vector<T> dividers )
{
    static_assert( is_integral_v<T> , "Must be integral." );
    for( const auto& divider : dividers )
    {
        if( number%divider != 0 ) return false;
    }
    return true;
}

int main()
{
    cout << isNumberDivide(350,{35,5,10}) << endl;
    return 0;
}
0
TomaszLiMoon napisał(a):

gif.latex?\mathbf{a}&space;\textrm{&space;jest&space;podzielne&space;przez&space;}&space;\mathbf{a_{1},&space;...&space;\,&space;,a_{n}}&space;\quad&space;\Leftrightarrow&space;\quad&space;\mathbf{&space;a&space;\textrm{&space;mod&space;}&space;a_{1}\cdot&space;...&space;\cdot&space;a_{n}&space;}&space;=&space;0
czyli

#include <iostream>
#include <numeric>
#include <vector>

using namespace std;

bool isDivide( int number , vector<int> dividers )
{
    return number % accumulate( dividers.begin() , dividers.end() , 1 , multiplies<int>() ) == 0;
}

int main()
{
    cout << isDivide( 150 , {3,5,10} );
    return 0;
}

Doprawdy?
Kiedy mnie uczono matematyki to 30 dzieliło się przez 3,5,10
https://ideone.com/0aeSYU

1 użytkowników online, w tym zalogowanych: 0, gości: 1