# PBinfo #4316 – Cifre18 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerinţă
Să se scrie un program care citește un număr natural n și o valoare nenulă k, cel mult egală cu numărul de cifre ale lui n. Să se mărească a k cifră din n cu 1 dacă este mai mică decât 9 și să se înlocuiască cu 0 în caz contrar.

Date de intrare
Programul va citi de la tastatură numerele n k.

Date de ieşire
Programul va afişa pe ecran valoarea lui n, după transformarea cerută.

Restricţii şi precizări

n ≤ 2.000.000.000

Exemplu 1
Intrare

31615 4
Ieşire

31625
Explicație
A patra cifră a lui n=32615 este 1. Deoarece este mai mică decât 9 se va mări cu 1, deci n devine 32625.

Exemplul 2
Intrare

32695 4
Ieşire

32605
Explicație
A patra cifră a lui n=32695 este 9. În acest caz se înlocuiește cu 0, deci n devine 32605.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main()
{
	int n, k , p = 1, q = 1;
	cin >> n >> k;
	while(k)
		q *= 10, k--;
	int m = n;
	while(m >= q)
		p *= 10, m /= 10;
	if(n / p % 10 < 9)
		n = n + p;
	else
		n -= 9 * p;
	cout << n << endl;
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/4316)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/4316/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-4316/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
