C++_연습 문제를 한데 모으다.

6523 단어

호나 규칙


호나 규칙은 최소 수의 곱셈을 사용하여 점 x0에서 다항식을 계산하는 방법이다.만약 다항식이 A(x)=anxn+an-1xn-1+...+a1x+a0이면 호나 규칙은 다음과 같다. A(x0)=(...(anx0+an-1)x0+...+a1)x0+a0
공식에서 알 수 있듯이 괄호 안의 부분은 귀속되는 과정이고 마지막에 귀속되는 출구는 a0이어야 한다
#include <iostream>

using namespace std;

int Horner(int *a,int i,int x,int n)
{
    if(i==n-1)
        return a[i];
    else
    {
        return x*Horner(a,i+1,x,n)+a[i];
    }
}

int main()
{
    int a[]={1,2,3};
    cout << Horner(a,0,2,3)<<endl;
    return 0;
}

모든 부울 값의 조합


사고방식: 먼저 n개의 브리 형식의 메모리 주소를 신청한 다음에 첫 번째를Ture로 하고 귀속을 시작한 다음에 첫 번째 수를false로 하고 귀속을 하고 마지막이 될 때true로 설정하고 출력을 하고false 출력으로 설정한다.
#include <iostream>

using namespace std;

void Printf(bool *a,int n)
{
    for(int i=0; i<n; i++)
    {
        if(a[i]) cout << "true" << " ";
        else cout << "false" << " ";
    }
    cout << endl;
}

void AllBool(bool *a,int k,int n)
{
    if(k==n-1)
    {
        a[k]=true;
        Printf(a,n);
        a[k]=false;
        Printf(a,n);
    }
    else
    {
        a[k]=true;
        AllBool(a,k+1,n);
        a[k]=false;
        AllBool(a,k+1,n);
    }
}

int main()
{
    int n;
    bool *a;
    n=2;
    a=new bool(n);
    AllBool(a,0,n);
    return 0;
}

승계

#include <iostream>

using namespace std;

int Iterative(int n)
{
    int result = 1;
    for(int i=1;i<=n;i++)
    {
        result*=i;
    }
    return result;
}

int Recursive(int n)
{

    if(n==1)
        return n;
    else
        return n*Iterative(n-1);
}

int main()
{
    cout << Iterative(4) << endl;
    cout << Recursive(4) << endl;
    return 0;
}

피보나치 수열

#include <iostream>

using namespace std;


int Iterative(int n)
{
    if(n==1||n==0)
        return n;
    else
        return Iterative(n-1)+Iterative(n-2);
}

int Recursive(int n)
{
    int now=1,pre=0,pre_now;
    while(n>1)
    {
        pre_now=now;
        now=pre+now;
        pre=pre_now;
        n--;
    }
    return now;
}

int main()
{
    cout << Iterative(6) << endl;
    cout << Recursive(6) << endl;
    return 0;
}

좋은 웹페이지 즐겨찾기