>>この記事には書き直した新しいページがあります。<<
<<前 [TOP] 次>>
Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。
【EnzanTest4.cpp】
#include <iostream> void main() { int n, max, goukei; std::cout << "nの倍数の和を求めるプログラムです。" << std::endl; std::cout << "n を自然数で入力してください。 n= " << std::endl; for (std::cin >> n ; !std::cin ; std::cin >> n){ std::cin.clear(); std::cin.ignore(); std::cout << "入力が間違ってます。" << std::endl << "n を自然数で入力してください。 n= "; } std::cout << "1以上max未満の和を求めます。" << std::endl; std::cout << "maxを自然数で入力してください。 max= " << std::endl; for (std::cin >> max ; !std::cin ; std::cin >> max){ std::cin.clear(); std::cin.ignore(); std::cout << "入力が間違ってます。" << std::endl << "maxを自然数で入力してください。 max= " ; } goukei = 0; if ((max%n) == 0) { for (int i=1; i<(max/n); i++) { goukei += i*n; } } else { for (int i=1; i<=(max/n); i++) { goukei += i*n; } } std::cout << "1以上" << max << "未満のすべての" << n << "の倍数の和は " << goukei << "です。" << std::endl; }
1以上max未満の全てのnの倍数の和を計算するプログラムです。
n, max は、キーボードから入力できます。
整数変数の値を一つだけ増やしたり、減らしたりすることは非常に頻繁に行われます。
数を1つ増やすことをインクリメントと呼び、1つ減らすことをデクリメントといいます。
インクリメントは、変数の後ろに ++ をつけます。
デクリメントは、変数の後ろに −− をつけます。
このプログラムでは、for文の条件の中にインクリメントを使用しています。
ループするたびに変数 i の値が一ずつ増えます。
サンプルプログラムをビルドしてデバッグしてみましょう。
1以上max未満の全てのnの倍数の和を計算するプログラムです。
n, max は、キーボードから入力できます。
Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。
【EnzanTest5.cpp】
#include <iostream> void main() { int n, min, x; std::cout << "min以上の最小のnの倍数を求めるプログラムです。" << std::endl; std::cout << "nの倍数のnを自然数で入力してください。 n= " << std::endl; for (std::cin >> n ; !std::cin ; std::cin >> n){ std::cin.clear(); std::cin.ignore(); std::cout << "入力が間違ってます。" << std::endl << "n を自然数で入力してください。 n= "; } std::cout << "最小値minを自然数で入力してください。 min= " << std::endl; for (std::cin >> min ; !std::cin ; std::cin >> min){ std::cin.clear(); std::cin.ignore(); std::cout << "入力が間違ってます。" << std::endl << "minを自然数で入力してください。min = " ; } if ((min%n) == 0) { x = min; } else { x = ((min / n )*n) + n; } std::cout << min << "以上の最小の" << n << "の倍数は" << x << "です。" << std::endl; }
min以上の最小のnの倍数を求めるプログラムです。
例えば、100以上で最小の3の倍数は102となります。
min、n はキーボードから入力できます。
例えば、
x = ( min / n ) * n;
とすると、変数xの値は割り切れない場合にはmin未満の最大のnの倍数になっています。
min = 9, n = 2 の場合には、 x は8となります。
一方、割り切れる場合には minに等しくなります。
プログラムはこのことを利用しています。
サンプルプログラムをビルドしてデバッグしてみましょう。
min以上の最小のnの倍数を求めるプログラムです。
例えば、100以上で最小の3の倍数は102となります。
min、n はキーボードから入力できます。
Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。
【EnzanTest6.cpp】
#include <iostream> void main() { int m, min, x, max, goukei; std::cout << "min以上max未満のmの倍数の和を計算するプログラムです。" << std::endl; std::cout << "m を自然数で入力してください。 m = " << std::endl; for (std::cin >> m ; !std::cin ; std::cin >> m){ std::cin.clear(); std::cin.ignore(); std::cout << "入力が間違ってます。" << std::endl << "m を自然数で入力してください。m = "; } std::cout << "min以上max未満の和を求めます。" << std::endl; std::cout << "maxを自然数で入力してください。 max= " << std::endl; for (std::cin >> max ; !std::cin ; std::cin >> max){ std::cin.clear(); std::cin.ignore(); std::cout << "入力が間違ってます。" << std::endl << "maxを自然数で入力してください。 max= " ; } std::cout << "最小値minを自然数で入力してください。 min= " << std::endl; for (std::cin >> min ; !std::cin ; std::cin >> min){ std::cin.clear(); std::cin.ignore(); std::cout << "入力が間違ってます。" << std::endl << "minを自然数で入力してください。min = " ; } if ((min%m) == 0) { x = min; } else { x = ((min / m )*m) + m; } goukei = 0; for (int i=x; i<max; i+=m) { goukei += i; } std::cout << min << "以上" << max << "未満の" << m << "の倍数の和は" << goukei << "です。" << std::endl; }
サンプルプログラムをビルドしてデバッグしてみましょう。
min以上max未満のmの倍数の和を計算するプログラムです。
min, maxおよび倍数 n はキーボードから入力できます。
<<前 [TOP] 次>>