アルゴリズムの第4版の第1章の授業の後で宿題
16121 ワード
元旦に酒を飲むのは間違いですね.女神は私を削除して、これから賢者モードに戻って、暇なほうが努力して、休みの間にアルゴリズムを見て、穴のお父さんの教務システムは私にデータ構造の授業を選ぶことができなくて、独学するしかありません.きっとそうだよ、がんばれ、オリーは
1.1.9
進数変換の問題、私の今の構想は数学の方法をまねて、循環シミュレーションで短く除いて、コードは以下の通りです
実際にはコードの問題は大きく、まずテーマの要求に合わずspringタイプの値sを印刷し、これはタイプ変換の関数を書いてintをspringに変換することができる.またn_2配列の大きさは限られていて、一定の制限があります.今日は少し遅いので、明日またやります.
1.1.20
再帰的な静的方法を記述してln(N!)を計算するの値は、再帰的な方法で計算階に乗ったに違いない.そしてmathライブラリで対数を計算する.
1.1.30
配列の練習、gcdさえ自分で書かなければなりませんね.Cは本当に何でも自分で来なければなりません.自分で豊衣足食をしなければなりません.ifTrue関数はi,jの2つの数が互いに質的であるかどうかを判断し,対応するBell値(Trueは1,Falseは0)を返し,gcd関数を中間的に呼び出し,ユークリッドアルゴリズムでi,jの最大公約数を求め,戻り値が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;
}