私は疑問を抱いています。これは学習の成果の1つで、ここではあまりにも助けてゲームを遠ざけるでしょう。
私は、あなたが方程式の各部分をより小さな解ける部分に分割する必要があると言うことは間違いないと思います。
三の大部分が加算され、N階乗(N!)と電源N
総和が効果的にNとループ1から始まりYで終わるので、のC構文を探すために2
他の2つは関数であり、あなたが事前作成された関数を使用することが許されていれば、たくさんのものが存在していて、あなた自身で書く必要があります。下降ループとrecursive functionまたは機能の
要因であるn*(n-1)*(n-2)...(n-(n-2))*(n-(n-1))
よう4! = 4*3*2*1
素数候補それに
2電源N 2自体を乗じたn回
あります
so 2 to power 2 = 2*2
2から電源3 = 2*2*2
など
もう一度ループを開始するとよいでしょう。
その後、ループ内で2つの関数を使用するだけで、ユーザーはYを入力していくつかの数値でテストすることができます。
1,2,3は、電卓でうまくやりやすいので、良いスタートです。
今まで投稿したすべての例に興味深いことが起こることを願っています。それは32のような大きな数字でボートを押し出す前です。
編集: 私はあなたのコードを見てきました。あなたの問題はアルゴリズムの実装ではなく、変数を正しく読み込んでいない、設定した直後にyを出力しているようです、何かがすぐそこでうまく動作していません。私はCコーダーではありませんでしたが、私はいくつかのリベラルなグーグルと機能していないコードでそれを素早くハックし、それを引数に読んでダブルに解析しました。
#include<stdio.h>
#include<math.h>
double factorial(double x);
double Power_function(double y);
main(int argc, char *argv[]){
double answer=0;
double n;
double y;
y = atol(argv[1]);
//printf("%lf\n",y);
for (n=1;n<=y;++n){
answer=answer +factorial(n)*Power_function(n)*y;
}
printf("The Answer is %0.2f\n",answer);
return 0;
}
double factorial(double x)
{
double ans;
if (x==0){
ans = 1;
}
else
{
ans = x*factorial(x-1);
}
return ans;
}
double Power_function(double y){
double ans;
ans=pow(2,y);
return ans;
}
だから、本質的に異なる入力方式を使用してコード、
が
./a.out 1
として実行
gcc so.c -lm
利回り使用してコンパイルThe Answer is 2.00
./a.out 2
利回りThe Answer is 20.00
./a.out 3
利回りThe Answer is 174.00
ペンと紙の数学は、ので、あなたのアルゴリズムは、これまでの音で、それをバックアップします!
いくつかの負の数値といくつかの巨大な数値を入力して、ここから何ができるかを確認してください。
宿題?そのように見える。 –
これは宿題だと思います。対応するタグを追加してください。 –
この式を手動でどのように計算しますか?これはまずは始めるためのアルゴリズムです。 – OrangeDog