Pomóżcie :) program w jezyku C++ (kompilator DeVc++). Dla zadanych liczb naturalnych N i M, napisz program ktory wypisuje wszystkie liczby naturalne mniejsze od N, ktorych kwadrat sumy cyfr jest rowny liczbie M. Bardzo prosze o pomoc :)
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
Nie jestem pewien czy dobrze zrozumialem treść, ale zrobiłem takie coś:
#include <iostream>
#include <conio.h>
using namespace std;
unsigned int KwadratSumyCyfr(unsigned int x) {
unsigned int suma = 0;
while ( x ) {
suma += (x % 10);
x /= 10;
}
return suma*suma;
}
int main() {
unsigned int n, m;
cout << "Podaj n: ";
cin >> n;
cout << "Podaj m: ";
cin >> m;
cout << "Liczby: " ;
for ( unsigned int i = 0; i < n; i++ )
if ( KwadratSumyCyfr(i) == m ) cout << i << ", ";
getch();
return 0;
}
Ja rozumiem to tak. Liczba n to zakres liczb naturalnych od 0 do N-1 (jezeli 0 nie ma byc liczbą naturalna to w funkcji main zmienic i = 1). Natomiast M to liczba, ktorej ma być równa suma kwadratu cyfr danej liczby naturalnej.
Np.
N = 1000
M = 36
znajdzie wszystkie liczby, ktorych suma cyfr podniesiona do kwadratu da liczbę 36
Wg. programu liczby te to: 6, 15, 24, 33, 42, 51, 60, 105, 114, 123, 132, 141, 150, 204, 213, 222, 231, 240, 303, 312, 321, 330, 402, 411, 420, 501, 510, 600
6, bo 6^2 = 36
15, bo (1+5)^2 = 36
24, bo (2+4)^2 = 36
itd.
^2 - czyt. do kwadratu