第5講 for文を理解しよう 
第5話 等差数列のn乗の和を求める普遍的なプログラム解答例
① 等差数列の2乗の和を求めるプログラムを考えてください。
コード例
import java.io.*;
class x{
  public static void main(String args[]) throws IOException {
    BufferedReader h= new BufferedReader(new InputStreamReader(System.in));
    int a,b,c;
    System.out.print ("初項=");
    a=Integer.parseInt(h.readLine());
    System.out.print ("末項=");
    b=Integer.parseInt(h.readLine());
    System.out.print ("公差=");
    c=Integer.parseInt(h.readLine());
    System.out.print("の場合の等差数列の2乗の和:");
    System.out.println(f(a,b,c));
  }
  public static int f(int x,int y,int z){
    int w=0,i;
    for(i=x;i<y+1;i+=z)w+=i*i;
    return(w);
  }
}
実行例
Java
解説
注目していただきたい点は、
入門
同じ色で囲った部分です。
public static int f(int x,int y,int z)は、
public static int f(int a,int b,int c)と同じ引数名にしてもよいしこの例のように別にしてもよいのです。
ただし、public static int f(int a,int b,int c)と同名にする場合は
  public static int f(int a,int b,int c){
    int w=0,i;
    for(i=a;i<b+1;i+=c)w+=i*i;
    return(w);
  }
としなければなりません。
Java
関数の中で文字が統一されていればよいのです。


② 等差数列の3乗の和を求めるプログラムを考えてください。
コード例
import java.io.*;
class x{
  public static void main(String args[]) throws IOException {
    BufferedReader h= new BufferedReader(new InputStreamReader(System.in));
    int a,b,c;
    System.out.print ("初項=");
    a=Integer.parseInt(h.readLine());
    System.out.print ("末項=");
    b=Integer.parseInt(h.readLine());
    System.out.print ("公差=");
    c=Integer.parseInt(h.readLine());
    System.out.print("の場合の等差数列の3乗の和:");
    System.out.println(f(a,b,c));
  }
  public static int f(int x,int y,int z){
    int w=0,i;
    for(i=x;i<y+1;i+=z)w+=i*i*i;
    return(w);
  }
}
実行例
入門

③ 等差数列の4乗の和を求めるプログラムを考えてください。
コード例
import java.io.*;
class x{
  public static void main(String args[]) throws IOException {
    BufferedReader h= new BufferedReader(new InputStreamReader(System.in));
    int a,b,c;
    System.out.print ("初項=");
    a=Integer.parseInt(h.readLine());
    System.out.print ("末項=");
    b=Integer.parseInt(h.readLine());
    System.out.print ("公差=");
    c=Integer.parseInt(h.readLine());
    System.out.print("の場合の等差数列の3乗の和:");
    System.out.println(f(a,b,c));
  }
  public static int f(int x,int y,int z){
    int w=0,i;
    for(i=x;i<y+1;i+=z)w+=i*i*i;
    return(w);
  }
}
実行例
初心者

では、次の課題です。
課題①
等差数列の和を上限値を超えない範囲で計算させるプログラムを考えてください。
例えば、初項2、公差3、上限値30なら
2+5+8+11=26
2+5+8+11+14=40
ですから、26が答えです。
課題②
等差数列の積を上限値を超えない範囲で計算させるプログラムを考えてください。
例えば、初項5、公差2、上限値1000なら
5×7×9=315
5×7×9×11=3462
ですから、315が答えです。
課題③
自然配列
基礎
を発生させるプログラムをfor文で実現してください。




第4話へ 第6話へ

戻る

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