1

この記事の目次



このページは「JAVAの繰り返し構文 for」の演習問題です。「JAVAの繰り返し構文 for」の基礎を学びたい方はこちらで参考してください。

1.  P = 1.3.5...(2n+1)を計算する


問題:P = 1.3.5...(2n+1)を計算する(n>0)

解答例
package helloworld;

public class HelloWorld {
     
    public static void main(String[] args) {

        int n = 5;
        long result = 1;
         
        // 式を計算する
        for (int i = 0; i <= n; i++) {
            result *= (2 * i + 1);  // result = result * (2 * i + 1)と同様
        }
        
        System.out.println("n = " + n + "において、");
        System.out.println("1.3.5...(2n+1) = " + result);
                
    }
  
}

実行結果:

2.  S = 1 - 2 + 3 - 4 + 5 + ... + ((-1)^(n+1)) * nを計算する


問題:S = 1 - 2 + 3 - 4 + 5 + ... + ((-1)^(n+1)) * nを計算する。 (n >= 0)

条件 : for文を使うこと。

ヒント : 変数iを1からnまでに増やし、iは偶数の場合、Sに足し加えますが、奇数の場合はSからiを引く。

回答例
package helloworld;

public class HelloWorld {
     
    public static void main(String[] args) {
        
        int n = 9, result = 0;

        // 式を計算する
        for (int i = 1; i <= n; i++) {
            
            if (i % 2 == 0) {//変数iは偶数ならば、引き算をする
                
                result -= i;    // result = result - i;
                
            } else {//変数iは奇数ならば、足し算をする
                
                result += i;    // result = result + i
            }
        }
        
        System.out.println("n = " + n + "に対して、");
        System.out.println("1 - 2 + 3 - 4 + 5 + ...  = " + result);
                
    }
  
}

実行結果:

3.  S = 1 + 1.2 + 1.2.3 + ... + 1.2.3.nを計算する


問題:S = 1 + 1.2 + 1.2.3 + ... + 1.2.3.nを計算する(n > 0)。

条件 : for文を使うこと。

解答例
package helloworld;

public class HelloWorld {
     
    public static void main(String[] args) {
        
        int n = 7, sum = 0, count = 1;

        // 式を計算する
        for (int i = 1; i <= n; i++) {
            
            count *= i;
            sum += count;
            
        }
        
        System.out.println("n = " + n + "に対して、");
        System.out.println("1 + 1.2 + 1.2.3 + ...  = " + sum);
                
    }
  
}

実行結果:

4.  T = 12 + 22 + 32 + ... + n2を計算する


問題:T = 12 + 22 + 32 + ... + n2を計算する(n > 0)。

条件 : for文を使うこと。

解答例
package helloworld;

public class HelloWorld {
     
    public static void main(String[] args) {
        
        int n = 7, sum = 0;

        // 式を計算する
        for (int i = 1; i <= n; i++) {
            
            sum = sum + i * i;
            
        }
        
        System.out.println("n = " + n + "に対して、");
        System.out.println("1^2 + 2^2 + 3^2 +... + n^2 = " + sum);
                
    }
  
}

実行結果:

5.  Q = 1 + 1/2 + 1/3 + ... + 1/nを計算する。


問題:Q = 1 + 1/2 + 1/3 + ... + 1/nを計算する(n>0)。

条件 : 結果の少数の第2桁まで取ること。

解答例
package helloworld;
import java.text.DecimalFormat;

public class HelloWorld {
     
    public static void main(String[] args) {
        
        int n = 10;
        float sum = 0;
        
        //少数の第2桁まで取るとフォマットする
        DecimalFormat decimalFormat = new DecimalFormat("#.##");

        // 式を計算する
        for (int i = 1; i <= n; i++) {
            
            sum += (float) 1/i; // 1/iの結果をfloat型に変換してからsumに足し加える
            
        }
        
        System.out.println("n = " + n + "に対して、");
        System.out.println("1 + 1/2 + 1/3 + ... + 1/n = " + decimalFormat.format(sum));
                
    }
  
}

実行結果:

6.  R = 1 + 22 + 33 + ... + nnを計算する。


問題:R = 1 + 22 + 33 + ... + nnを計算する(n > 0)。

ヒント : Rの計算するループの中に、iiを別のループで計算する。つまり、二重ループになる。

解答例
package helloworld;

public class HelloWorld {
     
    public static void main(String[] args) {
        
        int n = 7,sum = 0;

        // R式を計算する
        for (int i = 1; i <= n; i++) {
            
            int temp = 1;
            // i^iを計算する
            for (int j = 1; j <= i; j++) {
                temp *= i;
            }
            sum += temp;
            
        }
        
        System.out.println("n = " + n + "に対して、");
        System.out.println("1 + 2^2 + 3^3 + ... + n^n = " + sum);
                
    }
  
}

実行結果:

7.  M = 1 + (1+2)/2! + (1+2+3)/3! + ... + (1+2+3+...+n)/n!を計算する


問題:M = 1 + (1+2)/2! + (1+2+3)/3! + ... + (1+2+3+...+n)/n!を計算する(n > 0)。

条件 : 結果の少数の第2桁まで取ること。

解答例
package helloworld;
import java.text.DecimalFormat;

public class HelloWorld {
     
    public static void main(String[] args) {
        
        int n = 7;
        float sum = 0, temp1 = 1, temp2 = 0;
        
        //少数の第2桁まで取る
        DecimalFormat decimalFormat = new DecimalFormat("#.##");

        // M式を計算する
        for (int i = 1; i <= n; i++) {
            
            temp1 *= i; // 分母での階乗の計算
            temp2 += i; // 分子での和の計算
            sum += (float) temp2/temp1;//float型に変換する
            
        }
        
        System.out.println("n = " + n + "に対して、");
        System.out.println("1 + (1+2)/2! + (1+2+3)/3! + ... + (1+2+3+...+n)/n! = " + decimalFormat.format(sum));
                
    }
  
}

実行結果:

8.  まとめ


ここまでたどり着いてお疲れ様です。

初心者に対して、これらのfor文の演習問題はやや難しいかと思いますが、for文の意味と使い方はお分かりになりましたか?開発内容によって、難しいことをfor文でやらないといけないことがありますので、for文の制御までを理解するように頑張りましょう。

広告