第14講 関数の再帰的呼び出し
第6話 階乗を計算する
初項から末項までの和解答例
#include<iostream>
using namespace std;
int f(int i,int j,int w);
int main(){
   int i,j;
   cout<<"いくつからからいくつまでの和を計算させるのかキーボードから入力してください。"<<endl;
   cout<<"初項=";
   scanf("%d",&i);
   cout<<"末項=";
   scanf("%d",&j);
   cout<<i<<"から"<<j<<"までの和:"<<f(i,j,0)<<endl;
}
int f(int i,int j,int w){
   w+=j; //w=w+i;の簡略表現
   if(j-1>=i)w=f(i,j-1,w);
   return(w);
}

では次の課題です。上のプログラムを参考に
3×4×・・・×10
のように初項から末項までかけた場合の答えを出すプログラムに変更してください。
解答例は、例によって30行下。






















解答例
#include<iostream>
using namespace std;
int f(int i,int j,int w);
int main(){
   int i,j;
   cout<<"いくつからからいくつまでの積を計算させるのかキーボードから入力してください。"<<endl;
   cout<<"初項=";
   scanf("%d",&i);
   cout<<"末項=";
   scanf("%d",&j);
   cout<<i<<"から"<<j<<"までの積:"<<f(i,j,1)<<endl;
}
int f(int i,int j,int w){
   w*=j; //w=w*i;の簡略表現
   if(j-1>=i)w=f(i,j-1,w);
   return(w);
}
コンソール画面
c++

では次の課題です。
初項と末項と公差をコンソール画面から取得して
5+8+11+・・・+305のような計算(すなわち、等差数列の和)が出来るようにプログラムを変更してください。
また、
5×8×11×・・・×305の計算プログラムも組んでください。

第5話へ 第7話へ

戻る

C言語 C++講義第1部へ
VB講義へ
VB講義基礎へ

vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)