Informatică, întrebare adresată de oana99, 9 ani în urmă

Imi poate rezolva cineva cele doua probleme in limbaj c++? Va rog :)
3. Subprogramul verif primeşte prin singurul său parametru, x, un număr natural nenul cu
cel mult 9 cifre şi returnează valoarea 1 dacă numărul conţine cel puţin o secvenţă de 3
cifre impare alăturate şi 0 în caz contrar.
Exemplu: dacă x=7325972 se va returna valoarea 1.
a) Scrieţi definiţia completă a subprogramului verif. (6p.)
b) Scrieţi un program C/C++ care citeşte de la tastatură un număr natural nenul n cu exact
6 cifre şi, folosind apeluri utile ale subprogramului verif, verifică dacă n are primele trei
cifre impare. Programul afişează pe ecran mesajul Da în caz afirmativ şi mesajul Nu în caz
contrar.
Exemple: dacă se citeşte n=132567 se va afişa mesajul Nu, iar dacă n=979243, se va
afişa mesajul Da. (4p.)
4. Pentru un şir de numere naturale, numim ”nod” al şirului un termen din şir care are doi
vecini, termenul precedent şi termenul următor din şir, şi valoarea termenului respectiv este
strict mai mică decât suma valorilor celor doi vecini ai săi.
Fişierul text date.in conţine un şir de cel puţin două şi cel mult 1000 de numere naturale
având maximum 6 cifre fiecare, numere separate prin câte un spaţiu. Scrieţi un program
C/C++ care citeşte toate numerele din fişier şi afişează numărul de ”noduri“ ale şirului citit.
Exemplu: dacă fişierul date.in are următorul conţinut:
51 20 100 43 43 618 5000 31 2020 114 116 4
atunci pe ecran se afişează 6 (cele şase numere subliniate reprezintă ”noduri“ ale şirului).

Răspunsuri la întrebare

Răspuns de artur99
5
3:
#include <iostream>
using namespace std;

int verif(long int x){
    int dec, i, j, n;
    for(i=0;i<4;i++){
        dec = 1;
        for(j=0;j<i;j++)
            dec = dec * 10; //Generam nnumarul cu care scoatem ultimele i cifre
        n=x/dec; //Scoatem pe rand utlimele 0-1-2-3 cifre,
        if((n%10)%2==1&&((n/10)%10)%2==1&&((n/100)%10)%2==1){
            //Verificam daca ultima, penultima, si antipenultima cifra sunt pare
            return 1;
        }
    }
    return 0;
}

int main(){
    long int n;
    int ver;
    cout<<"n=";cin>>n;
    if(n>999999||n<100000){
        cout<<"numarul nu are 6 cifre";
    }else{
        ver=verif(n);
    }
    if(ver==1){
        cout<<"Da";
    }else{
        cout<<"Nu";
    }
    return 0;
}

4 -- e prea mult de lucru la el :))

oana99: multumesc! :D
artur99: :)
artur99: cp
Alte întrebări interesante