Am nevoie in C ++ si Pasca!
Se dă un număr natural n,i
parcurgere: de la stînga spre dreapta). Pe ecran se afişază mesajul DA în cazul cînd cifrele numărului n formează o consecutivitate strict crescătoare, NU - în caz contrar. Se dă un număr natural n. Scrieţi un program care determină dacă acest număr conţine cifre, care se repetă. Pe ecran se afişază mesajul DA în cazul cînd există repetări în cifrele numărului, NU - în caz contrar.
Răspunsuri la întrebare
Răspuns:
PROBLEMA 1:
#include <iostream>
using namespace std;
#define cin std::cin >>
#define cout std::cout <<
int main() {
int arr[1005], n, aux;
cin n;
aux = n;
int nrcif = 0;
int cifreconsecutive = 0;
while (n != 0)
{
nrcif++; //aflam numarul de cifre
n /= 10;
}
int p = nrcif; //stocam numarul de cifre intr o variabila pentru a il folosi mai tarziu
while (aux != 0)
{
arr[nrcif - 1] = aux % 10; //introducem in vectorul arr elementele incepand cu ultima cifra pe ultima pozitie ,pana la prima cifra pe prima pozitie, asa vom putea lucra cu cifrele lui in ordine de la stanga la dreapta
nrcif--;
aux /= 10;
}
for (size_t i = 0; i < p; i++)
{
if (arr[i] == arr[i+ 1] - 1)
{
cifreconsecutive++; //DACA cifra curenta este egala cu cifra urmatoare - 1 , se va adauga o cifra consecutiva la variabila cifrelor consecutive.
}
}
cifreconsecutive++;
if (cifreconsecutive == p)
{
cout "DA"; //daca cifrele consecutive sunt egale cu numarul de cifre se va afisa da iar daca nu se va afisa nu
}
else cout "NU";
}
PROBLEMA 2:
#include <iostream>
using namespace std;
#define cin std::cin >>
#define cout std::cout <<
int main() {
int arr[1005], n, aux;
cin n;
aux = n;
int nrcif = 0;
int aparitii = 0;
while (n != 0)
{
nrcif++;
n /= 10;
}
int p = nrcif;
while (aux != 0)
{
arr[nrcif - 1] = aux % 10;
nrcif--;
aux /= 10;
} //pana aici codul face ce a facut si precedentul adica stocheaza cifrele numarului intr un vector
for (size_t i = 0; i < p; i++)
{
for (size_t q = i; q < p; q++)
{
if (arr[i] == arr[q])
{
aparitii++;
}//Codul verifica daca cifra curenta este egala cu vreuna din urmatoarele cifre din nr in caz afirmativ , aparitii + 1, iar daca sunt mai mult de 2 numere adica 2 apariti, sa se afiseze DA si sa se opreasca programul, daca nu, programul va rula pana se termina numarul, daca nu gaseste aparitii va afisa nu.
if (aparitii > 1)
{
cout "DA";
return 0;
}
}
aparitii = 0;
}
if (aparitii == 0)
{
cout "NU";
}
}
Explicație:
Sper ca te-am ajutat :)