• ベストアンサー

カウンタ利用の再帰式

下記に記述してあるプログラムを1~100までの2の倍数の和と積を求め、但し倍数の個数Nは、N=3に変えたいのですがどうすればいいのかわかりません。 どなたかご教授お願いします。 /* prog.c */ #include <stdio.h> #define N 5 main() { static int a[N]={1,2,3,4,5}; int S[N],P[N]; int i; a[0]=i; S[0]=a[0]; P[0]=a[0]; for(i=1;i<=(N-1);i++){ a[i]=i+1; S[i]=S[i-1]+a[i]; P[i]=P[i-1]*a[i]; } for(i=0;i<=(N-1);i++){ printf("i=%d,a[%d]=%d,S[%d]=%d,P[%d]=%d\n",i,i,a[i],i,S[i],i,P[i]); } }

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

同じく、よくわかりませんが・・ 次のような意味かな? #include <stdio.h> #define N 3 int main(void){ static int a[N]; int S[N],P[N]; int i; P[0]=S[0]=a[0]=2; for(i=1;i<N;i++){ a[i]=a[i-1]+2; S[i]=S[i-1]+a[i]; P[i]=P[i-1]*a[i]; } for(i=0;i<N;i++){ printf("i=%d,a[%d]=%d,S[%d]=%d,P[%d]=%d\n",i,i,a[i],i,S[i],i,P[i]); } return 0; }

その他の回答 (1)

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

質問の意図がつかめませぬ……。 このプログラムは……iが初期化されてないし^^; i=1で初期化したと仮定すると、 Sには1+2+…が、 Pには1*2*…が入る、よね? hm...あぁ、forでiを初期化してるのね。 a[0],S[0],P[0]が不定になってるよ。 で…… 「1~100までの2の倍数の和と積を求め」これは… 1~100を2で割った余りが0なら2の倍数だ。 あるいは、2の倍数とはすなわち偶数だ。 和と積は、このプログラムで求めてるからわかるよね? 「但し倍数の個数Nは、N=3に変えたい」 ごめん、これが意味不明。 「倍数の個数」ってナニ?

関連するQ&A