Salut! Va rog mult sa mă ajutați la problemele 108 și 3246 de pe pbinfo. 108 trebuie făcută cu o funcție ce returnează prima cifra și 3246 trebuie făcută cu o funcție ce verifica daca un număr este echilibrat. Rezolvare C++.
Răspunsuri la întrebare
Salut!
Ai rezolvarile in C++ mai jos
108.
#include <iostream>
using namespace std;
int pc(int n)
{
while (n > 9)
{
n /= 10;
}
return n;
}
int main()
{
int n;
cin >> n;
int prima_cifra, cnt = 0;
if(n == 0)
cout << 1;
else{
prima_cifra = pc(n);
while(n > 0){
if(n % 10 == prima_cifra)
cnt++;
n/=10;
}
cout << cnt;
}
return 0;
}
3246.
#include <iostream>
using namespace std;
int nrcif(int n)
{
int cnt = 0;
while (n)
{
cnt++;
n /= 10;
}
return cnt;
}
int cifpar(int n)
{
int cnt = 0;
while (n)
{
int c = n % 10;
if (c % 2 == 0)
{
cnt++;
}
n /= 10;
}
return cnt;
}
int cifimp(int n)
{
int cnt = 0;
while (n)
{
int c = n % 10;
if (c % 2 != 0)
{
cnt++;
}
n /= 10;
}
return cnt;
}
int main()
{
int a, b;
cin >> a >> b;
long long s = 0;
for (int i = a; i <= b; ++i)
{
if ((nrcif(i) % 2 == 0) && (cifpar(i) == cifimp(i)))
{
s += i;
}
}
cout << s;
return 0;
}