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

Ma puteti ajuta la aceasta problema va rog :3?
Se considera algoritmul alaturat:
citeste a (nr natural)
b <- 0
p <- 1
cat timp a>0 executa c<-a%10
daca c%2 diferit de 0 atunci
b<-b+p*c
p<-p*10
a<-[a/10]

scrie b
a) scrieti valoarea care se va afisa daca se citeste numarul a=245903
b)scrieti o valoare care poate fi citita pentru variabila a astfel incat sa se afiseze o valoare egala cu cea citita
c)scrieti programul c/c++ corespunzator algoritmului dat
d)scrieti in pseudocod un algoritm echivalent cu cel dat,algoritm in care sa se inlocuiasca structura cat timp...executa cu o structura repetitiva de alt tip


artur99: in "daca c%2" este intrat doar b<-b+p*c ?
BiancaAlexa999: yep
artur99: ok
BiancaAlexa999: de fapt e si p<-p*10 ...acum am vazut
artur99: a, ok :)

Răspunsuri la întrebare

Răspuns de artur99
1
a) Se va afisa 593
b) Orice serie de numere impare (Ex: 135 sau 333)
c)
#include <iostream>
using namespace std;
int main(){
    int a, b, p, c;
    cout<<"a=";cin>>a;
    b=0;
    p=1;
    while(a>0){
        c=a%10;
        if(c%2!=0){
            b=b+p*c;
            p=p*10;
        }
        a=a/10;
    }
    cout<<b;
    return 0;
}
d)
lol, nu stiu cum se face un for/pentru in pseudocod... Il scriu tot in c++ :)) il transformi tu cumva :))
#include <iostream>
using namespace std;
int main(){
    int a, b, p, c, i;
    cout<<"a=";cin>>a;
    b=0;
    p=1;
    for(i=a;i>0;i=i/10){
        c=i%10;
        if(i%2!=0){
            b=b+p*c;
            p=p*10;
        }
    }
    cout<<b;
    return 0;
}

BiancaAlexa999: mersi mult inca o data :*
artur99: cp :D
Alte întrebări interesante