プログラミングの授業などでは、練習問題として「掛け算(乗算)」を「足し算(加算)」だけで再現するという課題を出題されることがあります。
本記事の内容はその課題の解き方についてです。
実際にプログラムを作成してみる
早速ですが、実際にプログラムを作成していきます。
プログラム作成の手順
プログラム作成の手順は以下の通りです。
- 乗算に使用する数値(整数)x1、x2を入力させる
- 変数y(=0)にx1の値をx2回分足す(ループを使用)
- 計算結果としてyの値を出力する
※念のためループ処理に「For文を使う場合」と「While文を使う場合」で分けてプログラムを作成しようと思います。
実装例(For文を使用する場合)
上記の手順に従ってプログラムを作成します。
#include <stdio.h>
int main(void){
/* 変数を定義する */
int x1, x2, y;
/* 計算に使用する数値の入力を促す */
printf("Enter the 1st number :\n");
scanf("%d", &x1);
printf("Enter the 2nd number :\n");
scanf("%d", &x2);
/* x1の値をyにx2回足す */
y = 0;
for(int i=0; i<x2; i++){
y += x1;
}
/* 計算結果を出力する */
printf("Result :\n%d x %d = %d\n", x1, x2, y);
return 0;
}
このプログラムを実行すると以下の出力結果が得られます。
Enter the 1st number :
50
Enter the 2nd number :
40
Result :
50 x 40 = 2000
特に問題なく処理が完了していることを確認できます。
実装例(While文を使用する場合)
上記の手順に従ってプログラムを作成します。
#include <stdio.h>
int main(void){
/* 変数を定義する */
int x1, x2, y, count;
/* 計算に使用する数値の入力を促す */
printf("Enter the 1st number :\n");
scanf("%d", &x1);
printf("Enter the 2nd number :\n");
scanf("%d", &x2);
/* x1の値をyにx2回足す */
y = count = 0;
while(count<x2){
y += x1;
count++;
}
/* 計算結果を出力する */
printf("Result :\n%d x %d = %d\n", x1, x2, y);
return 0;
}
このプログラムを実行すると以下の出力結果が得られます。
Enter the 1st number :
50
Enter the 2nd number :
40
Result :
50 x 40 = 2000
こちらも特に問題なく処理が完了していることを確認できます。
おすすめの記事
本記事を読まれた方には、以下の記事もおすすめします。
【中・上級者への道!】C言語の次に勉強するべきプログラミング言語は何?【オススメは○○】