私は現在、ロシアの農民アルゴリズムでプログラムを解決しており、再帰コードを使用しています:
私のコード:
int russian_peasant(int a,int b)
{
static int sum =0;
if(a>=1)
{
if(a%2!=0)
{
sum += (b);
russian_peasant(a/2,b*2);
}
else
{
russian_peasant(a/2,b*2);
}
}
printf("%d\n",sum);
return sum;
}
printf("%d\n",sum); を印刷しているときよりも sum を static として宣言しましたが。最後に変更された値が出力されるよりも呼び出しごとに!..
すべての呼び出しの値をどのように出力する必要がありますか? 私の方法がうまくいかないのはなぜですか?