第14講 関数の再帰的呼び出し
第7話 等差数列の和・積
等差数列の和の解答例
#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);
}
実行結果例
等差数列の積の解答例
#include<iostream>
using namespace std;
int f(int i,int j,int k,int w);
int main(){
int i,j,k;
cout<<"初項、末項、公差を入力してください。"<<endl;
cout<<"初項=";
scanf("%d",&i);
cout<<"末項=";
scanf("%d",&j);
cout<<"公差=";
scanf("%d",&k);
cout<<"公差が"<<k<<"の場合の"<<i<<"から"<<j<<"までの等差数列の積:"<<f(i,j,k,1)<<endl;
}
int f(int i,int j,int k,int w){
w*=j; //w=w*i;の簡略表現
if(j-k>=i)w=f(i,j-k,k,w);
return(w);
}
実行結果例
次元が違うと前に説明しました。
次元が違うとはいったいどういうことでしょうか。
それを理解していただくために次講では順列を作成するプログラムを組みます。
そして、次次講ではそのプログラムを基に魔方陣作成プログラム(理論的には、何次でも可能な汎用ソフト)を組みます。
第6話へ 第15講第1話へ
C言語 C++講義第1部へ
VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)