学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

C++ | 11 | 特別な演算子を使用したプログラム

<<前  [TOP]  次>>


Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。


【EnzanTest4.cpp】

#include <iostream>

int 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」は、キーボードから入力できます。


EnzanTest4.cpp実行結果
EnzanTest4.cpp実行結果


Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。


【EnzanTest5.cpp】

#include <iostream>

int 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の倍数を求めるプログラムです。
min、n はキーボードから入力できます。


EnzanTest5.cpp実行結果
EnzanTest5.cpp実行結果


Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。


【EnzanTest6.cpp】

#include <iostream>

int 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 はキーボードから入力できます。


EnzanTest6.cpp実行結果
EnzanTest6.cpp実行結果


↓↓クリックして頂けると励みになります。


<<前  [TOP]  次>>