Cerințe:
a) Scrieți un subprogram care primește la intrare un număr natural dat, n, de maxim 9 cifre, și întoarce suma cifrelor acestui număr.
b) Să se utilizeze acest subprogram pentru a calcula suma cifrelor numărului obținut în urma efectuării sumei S=1+2+3+...+x , unde x este un număr natural citit de la tastatură.
Răspunsuri la întrebare
Răspuns:
a)
#include <iostream>
using namespace std;
int main()
{
int a,uc,s;
s=0;
cout<<"Introdu un numar: ";cin >>a;
while(a>0)
{
uc=a%10;
a=a/10;
s=s+uc;
}
cout<<"Suma cifrelor este: "<<s;
return 0;
}
b)
#include <iostream>
using namespace std;
int main()
{
int a,uc,s_cifre,s;
s_cifre=0;
cout<<"Introdu un numar: ";cin >>a;
s=a;
for(int i=0;i<a;i++){
s=s+i;
}
while(s>0)
{
uc=s%10;
s=s/10;
s_cifre=s_cifre+uc;
}
cout<<"Suma cifrelor este: "<<s_cifre;
return 0;
}
Salut!
Ai mai jos rezolvarile in limbaj C++
a)
int sumCif(int n)
{
int s = 0;
while (n != 0)
{
int c = n % 10;
s += c;
n /= 10;
}
return s;
}
b)
#include <iostream>
using namespace std;
int sumCif(int n)
{
int s = 0;
while (n != 0)
{
int c = n % 10;
s += c;
n /= 10;
}
return s;
}
int main()
{
int n, s = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
s += i;
}
cout << sumCif(s);
return 0;
}