「アルゴリズムノート」のセクション2.4-C / C ++クイックスタート->ループ構造
質問1:例5-1-1連続自然数の合計
タイトルの説明
1+ 2 + 3 +…+ 100をシークします。つまり、必要な
入力の合計を達成し、出力を行わ
ないためにwhileステートメントが必要であり、最終出力は折り返されます。サンプル入力コピーサンプル出力なしコピー5050
#include <stdio.h>
int main(void) {
int i = 1;
int sum = 0;
while (i <= 100) {
sum += i;
i++;
}
printf("%d", sum);
return 0;
}
2番目の質問:例5-1-2連続自然数の合計
タイトルの説明
シーク1+ 2 + 3 +…+ 100、つまり、do…whileステートメントを使用して
入力を実現し
、
出力を実現しない必要があります。
結果を計算します。最後の出力改行に注意してください。
サンプル入力コピーサンプル出力
なし
コピー
5050
#include <stdio.h>
int main(void) {
int i = 1;
int sum = 0;
do {
sum += i;
i++;
} while (i <= 100);
printf("%d", sum);
return 0;
}
質問3:例5-1-3連続自然数の合計
タイトル説明
シーク1+ 2 + 3 +…+ 100、つまり、
入力を達成し
、
出力を達成しないためにforステートメントが必要です。
計算結果は最後に出力されます。
サンプル入力コピーサンプル出力
なし
コピー
5050
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 1; i <= 100; ++i) {
sum += i;
}
printf("%d", sum);
return 0;
}
4番目の質問:例5-1-4連続した自然数の合計
タイトルの説明
正の整数Nを入力して、1 + 2 +…+ Nを見つけます。これは、プログラムでbreakステートメントを使用する必要があることを意味します。
入力入力
する必要のあるデータは正の整数である必要があります。
出力
計算の結果、N個の連続する自然数の合計、および最後のニューライン。
サンプル入力コピー
100
サンプル出力コピー
5050
#include <stdio.h>
int main(void) {
int sum = 0, n;
scanf("%d", &n);
for (int i = 1;; ++i) {
if (i > n) break;
sum += i;
}
printf("%d", sum);
return 0;
}
質問5:例5-1-5連続自然数の合計
トピックの説明
1+ 2 + 3 + ...の合計を見つけるプログラムを実現するためのプログラミングでは、合計が1000を超える最小の正の整数を取得する必要があります。
入力出力
なし
出力
は1+ 2 + 3 +…+ N> 1000を最小の正の整数Nにし、最終出力はラインフィードです。
サンプル入力コピーサンプル出力
なし
コピー
45
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 1;; ++i) {
sum += i;
if (sum > 1000) {
sum = i;
break;
}
}
printf("%d", sum);
return 0;
}
6番目の質問:例5-6マトリックス出力
タイトル説明
次の4 * 5マトリックスを出力します12
3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20.
達成するにはループを使用する必要があります。各行に5つの数字が出力され、各数字が3文字を占めることに注意してください。幅、右揃え。
入力出力
なし1行に5つの数字を
出力します
。各数字は、右寄せで3文字の幅を占めます。
サンプル入力コピーサンプル出力
なし
コピー
12 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
#include <stdio.h>
int main(void) {
for (int i = 0; i < 4; ++i) {
for (int j = 0; j < 5; ++j) {
printf("%3d", (i + 1) * (j + 1));
}
printf("\n");
}
return 0;
}
質問7:例5-7piのおおよその値を見つける
タイトルの説明
次の式を使用します。
特定の用語の絶対値が10-6未満になるまで、PIの概算値を見つけます(用語は累積されません)。
必要な出力の全幅は10桁で、小数部は8桁です。
プログラムで浮動小数点データを使用する場合は、倍精度ダブルタイプとして定義してください。
絶対値を計算する必要がある場合は、C言語の数学ライブラリが提供する関数fabsを使用できます。たとえば、xの絶対値を見つけるには、fabs(x)です。
入力
なし
出力
PI = pi
の概算値出力の合計幅は10桁で、そのうちの10進数です。パーツは8ビットです。
最後にラインフィードが出力されます。
サンプル入力コピーサンプル出力
なし
コピー
PI = 3.14159065
#include <stdio.h>
#include <math.h>
int main(void) {
int flag = -1;
double term = 1;
double pi = 1;
while (1) {
term += 2;
if (1 / term < pow(10, -6)) break;
pi += flag * 1 / term;
flag = -flag;
}
printf("PI=%10.8f", 4 * pi);
return 0;
}
質問8:例5-8フィボナッチシーケンス
タイトルの説明
正の整数nを入力して、Fibonacciシーケンスのn番目の数値を検索します。フィボナッチシーケンスの特徴:1番目と2番目の数字は1,1です。3番目の数値から始めて、要約は前の2つの数値の合計です。つまり、
50を超えない正の整数nを
入力
し
ます。50を超えない正の整数を入力して
、Fibonacciシーケンスのn番目の番号を出力し、最後に新しい行を出力します。
サンプル入力コピー
20
サンプル出力コピー
6765
#include <stdio.h>
int main(void) {
int a;
int b[50] = {
1, 1};
scanf("%d", &a);
if (a == 1 || a == 2) {
printf("%d", b[0]);
} else if (a > 2) {
for (int i = 2; i < a; ++i) {
b[i] = b[i - 1] + b[i - 2];
}
}
printf("%d", b[a - 1]);
return 0;
}
質問9:演習5-10:分数シーケンスの合計
タイトルの説明に
は、次のスコアシーケンスがあり
ます。頻度列の最初の20項目の合計を見つけます。
結果のデータタイプをdoubleタイプとして定義してください。
入力出力
なし小数点以下6桁を予約し、最後に新しい行を出力します。サンプル入力コピーサンプル出力なしコピー32.660261
#include <stdio.h>
int main(void) {
double sum = 0;
double i = 1, j = 2, temp;
int count = 0;
while (count < 20) {
sum += j / i;
temp = j;
j = i + j;
i = temp;
count++;
}
printf("%.6f\n", sum);
return 0;
}