Un număr este de tip “munte” dacă cifrele sale formează inițial un șir strict crescător, apoi un șir strict descrescător.
Cerinţa
Se dau n numere naturale. Determinați, pentru fiecare dintre ele, dacă este de tip “munte”.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii.
Date de ieşire
Programul afișează pentru fiecare dintre cele n numere citite, pe câte o linie a ecranului valoarea 1, dacă numărul corespunzător este de tip “munte”, respectiv valoarea 0 în caz contrar.
Restricţii şi precizări
1 ≤ n ≤ 10
cele n numere citite vor fi mai mici decât 2.000.000.000
cele n numere citite vor fi mai mari decât 100
Exemplu
Intrare
4
15965 156 121 753
Ieșire
1
0
1
0
imi poate spune cineva unde am gresit?
codul meu:
#include
using namespace std;
int main()
{
int n, x, k, a[11], max, pmax, c, p, j, ok1, ok2, b, d, e;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> x;
int cx = x;
k = 0;
while (cx > 0)
{
c = cx % 10;
a[++k] = c;
cx = cx / 10;
}
for (p = 1, j = k; i < j; i++, j--)
swap (a[i], a[j]);
max = 101;
pmax = 101;
for (b = 1; b <= k; b++)
if (a[b] > max)
{
max = a[b];
pmax = b;
}
ok1 = 1;
ok2 = 1;
for (d = 1; d <= pmax; d++)
if (a[d] >= a[d+1])
ok1 = 0;
for (e = pmax + 1; e <= k; e++)
if (a[e] <= a[e+1])
ok2 = 0;
if (ok1 == 1 && ok2 == 1 && pmax > 1 && pmax < k)
cout << 1 << endl;
else
cout << 0 << endl;
}
return 0;
}
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
#include <iostream>
using namespace std;
int m[12], cif[12];
int descreste(int a, int b)
{
int ok=1;
for (int i=a; i<b && ok; ++i)
if (cif[i]<=cif[i+1]) ok=0;
return ok;
}
int munte(int num)
{
int nc=0;
while (num)
{
++nc; cif[nc]=num%10; num/=10;
}
int k=1;
while (cif[k]<cif[k+1] && k<nc) ++k;
if (k==1 || k==nc) return 0;
else if (descreste(k, nc)) return 1;
else return 0;
}
int main()
{
int n, i, a;
cin >> n;
for (i=1; i<=n; ++i)
{
cin >> a;
if (munte(a)) m[i]=1;
}
for (i=1; i<=n; ++i)
{
cout << m[i] << "\n";
}
return 0;
}
Explicație:
Alte întrebări interesante
Informatică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Engleza,
8 ani în urmă
Ed. muzicală,
9 ani în urmă
Matematică,
9 ani în urmă