アルゴリズムの第4版の第1章の授業の後で宿題


元旦に酒を飲むのは間違いですね.女神は私を削除して、これから賢者モードに戻って、暇なほうが努力して、休みの間にアルゴリズムを見て、穴のお父さんの教務システムは私にデータ構造の授業を選ぶことができなくて、独学するしかありません.きっとそうだよ、がんばれ、オリーは
1.1.9
進数変換の問題、私の今の構想は数学の方法をまねて、循環シミュレーションで短く除いて、コードは以下の通りです
#include 
#include 

int main()
{
    int n;//        n
    int n_2[1000];//       
    scanf("%d",&n);
    int i=0;
    while(n>0)
    {
        n_2[i]=n%2;
        n=n/2;
        i++;
    }
    for(i=i-1;i>=0;i--)
    {
        printf("%d",n_2[i]);
    }
    return 0;
}

実際にはコードの問題は大きく、まずテーマの要求に合わずspringタイプの値sを印刷し、これはタイプ変換の関数を書いてintをspringに変換することができる.またn_2配列の大きさは限られていて、一定の制限があります.今日は少し遅いので、明日またやります.
1.1.20
再帰的な静的方法を記述してln(N!)を計算するの値は、再帰的な方法で計算階に乗ったに違いない.そしてmathライブラリで対数を計算する.
#include 
#include 
#include 
double log_recursion(int n);//    ,        
int recursion(long int n);//      

int main()
{
    int n;
    scanf("%d",&n);
    double nn=log_recursion(n);
    printf("%lf",nn);
    return 0;
}

double log_recursion(int n)
{
    double temp = recursion(n);
    double nn = log(temp);
    return nn;
}

int recursion(long int n)
{
    if(n==1)
        return 1;
    else
        return n*recursion(n-1);
}

1.1.30
配列の練習、gcdさえ自分で書かなければなりませんね.Cは本当に何でも自分で来なければなりません.自分で豊衣足食をしなければなりません.ifTrue関数はi,jの2つの数が互いに質的であるかどうかを判断し,対応するBell値(Trueは1,Falseは0)を返し,gcd関数を中間的に呼び出し,ユークリッドアルゴリズムでi,jの最大公約数を求め,戻り値が1より大きい場合,彼らは互いに質的ではない.
#include 
#include 

int ifTrue(int i,int j)
{
    if(i==0||j==0||i==1||j==1)
    {
        return 1;
    }
    else
    {
        if(gcd(i,j)>1)
            return 0;
        else
            return 1;
    }
}
int gcd(int a,int b)
{
    if(a<b)
    {
        int temp=b;
        b=a;
        a=temp;
    }
    while(a%b)
    {
        int r = a%b;
        a=b;
        b=r;
        r=a%b;
    }
    return b;
}

int main()
{
    int n;
    scanf("%d",&n);
    unsigned int a[n][n];
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            a[i][j]=ifTrue(i,j);
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            printf("%2d",a[i][j]);
        }
        printf("
"
); } return 0; }