Programarea Calculatoarelor, seria CC

Tema 1

Deadline: Duminică, 1 noiembrie 2009, ora 22:00

Precizări:



Problema 1.

Se citeşte de la tastatură un număr natural n (1 <= n <= 10 000 ) şi o cifră c. Să se afişeze numărul de apariţii ale lui c în toate numerele de la 1 la n.

Exemplu:

Intrare Ieşire
10 1
2

Problema 2.

Se citesc 6 numere reale reprezentând coordonatele a 2 cercuri (centrul şi raza - x1 y1 r1 x2 y2 r2). Afişaţi un mesaj corespunzator dacă acestea nu se intersectează, sunt tangente sau coincid sau distanţa dintre cele 2 puncte de intersecţie altfel (cu 3 zecimale).

Exemplu:

Intrare Ieşire
0 0 1 1000 1000 1
Nu se intersecteaza.
1 1 1 1 1 1
Coincid.
1 1 1 3 1 1
Tangente.
5 5 5 6 6 6
7.714

Problema 3.

Se citeşte de la tastatură un număr natural n (n <= 1 000 000). Afişaţi ultima cifră a sumei 1 + 2^2 + 3^3 + ... + n^n.

HINT: Nu este nevoie să calculaţi efectiv suma (numerele sunt foarte mari şi o să observaţi că n^n depăşeşte rapid dimensiunea oricărui tip întreg).

Exemplu:

Intrare Ieşire
3
2

Problema 4.

Se citeşte un număr natural x ( 0 <= x <= 1 000 000 ) şi un număr natural n (2 <= n <= 100). Să se calculeze \sqrt[n]{x} cu 3 zecimale exacte. (NU se va folosi funcţia pow).

HINT: Căutare binară.
Ştim sigur că soluţia y se află în intervalul [0, x] , aşa că o să testam dacă mijlocul intervalului este soluţia căutată.
În funcţie de rezultatul obţinut putem decide dacă soluţia se află în intervalul [0, x/2 - eps] sau în [x/2 + eps, x] sau dacă este chiar mijlocul intervalului, unde eps = 0.001 (precizia cu care se caută).
În funcţie de această decizie putem restrange intervalul şi relua raţionamentul de mai sus sau putem opri algoritmul dacă am găsit soluţia.

Exemplu:

Intrare Ieşire
5 6
1.307
4 2
2.000

Problema 5.

Se citeşte un număr natural n (n <= 50 000). Să se afişeze numărul k din intervalul [1, n] care are cei mai mulţi divizori. Dacă există mai multe numere cu această proprietate se va afișa cel mai mic dintre ele.

Exemplu:

Intrare Ieşire
7
6