Informatică, întrebare adresată de alexutaq, 9 ani în urmă

Hei ma puteti cu niste probleme la info suna cam asa:
voi nota inmultirea cu "*"

1) Calculati suma: s=1-x+x²/2!-x³/3!+x⁴/4!-x⁵/5!+...+(-1)^2n+1 * xⁿ/(2n-1)!
Unde x si n sunt doua numere naturale care se citesc de la tastatura .Descompuneti problema in subprobleme.Rezolvati fiecare subproblema cu ajutorul unui subprogram.

2)Scrieti un subprogram care sa returneze numarul de cifre ale unui numar natural,transmis ca parametru.

3)Folositi un subprogram pentru calculul celui mai mare divizor comun a doua numere pentru a rezolva urmatoarea problema:se introduc de la tastatura doua numere, "s" si "m" ; sa se afiseze toate perechile de numere care au suma "s" si cel mai mic multiplu comun "m".

Deci chiar am nevoie de ajutor la problemele astea,vreau sa le inteleg in mod special si tin sa mentionez ca sunt clasa a 10a si vreau rezolvare cat de cat incat sa inteleg problema,multumesc mult!!!


lozanalex: Solutia trebuie sa fie in Pascal sau in C++?
alexutaq: c++

Răspunsuri la întrebare

Răspuns de lozanalex
0
1)

#include <iostream>

using namespace std;

int fact(int x) //factorialul
{
    if (x<2) return 1;// 0!=1! = 1
    return x*fact(x-1);// x!=(x-1)!*x
}

int pw(int x, int y)
{
    if (y==0) return 1;// a^0=1
    return x*pw(x,y-1); // a^x=x*a^(x-1)
}

main()
{
    int n,x; double s=0;
    cin >> n >> x;
    for (int i=0; i<=n; i++)
        s+=1.0*pw(-1,i)*pw(x,i)/fact(i);
    cout << s ;
}

2)

#include <iostream>
#include <cmath>

using namespace std;

int nc(int x) //nc - numarul de cifre
{
    return ((int)(log10(x)))+1;
    //numarul de cifre coincide cu partea intreaga a 1+ log in baza 10 
}

main()
{
    int x;cin >> x;
    cout << nc(x);
}

3)

#include <iostream>

using namespace std;

int gcd(int a, int b)
{
    if (!b) return a;
    return gcd(b, a % b);
}

main()
{
    int s,m,x,y;
    cin >> s >> m;
    x=0; y=s;
    for (; x<=y; x++,y--)
    {
        if (gcd(x,y)==m) cout  << x << ' ' << y << '\n';
    }
}
Alte întrebări interesante