初の公式コンテンツ、さあ

ヒント: 記事を作成した後、目次を自動的に生成できます。生成方法は、右側のヘルプドキュメントを参照してください。


序文

この記事では、sleep()関数の使い方、二分探索の注意点のデモンストレーション、階乗の和を簡易的に出力する方法を紹介します。

1. Sleep()関数の使用

Sleep()を使用するには、[windows.h]ヘッダーファイルを追加する必要があります
スリープとは、プログラムを遭遇後、一定時間停止させて実行を継続させることです。一時停止時間は
()内の値に関係し、単位はミリ秒です。つまり、Sleep(1000)で1秒間一時停止します。 例: Sleep関数を追加する

:
ここに画像の説明を挿入

Sleep 関数を追加した後の実行結果:
ここに画像の説明を挿入
挿入後、実行ステータスが 1 行ずつ明確に表示されます。
コード全体は次のとおりです:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include <windows.h>
// 複数の文字の両端からの動きを示し、中央に向かって収束するコードを記述します。
int main()
{ char arr1[] = "ようこそ!!!"; char arr2[] = "********************"; int left = 0; int right = strlen(arr2) - 1; while (left <= right) { arr2[left] = arr1[left]; arr2[right] = arr1[right]; printf("%s\n", arr2 ); Sleep(1000);//続行する前に 1 秒間スリープ (待機)します//system(“cls”);//画面をクリアleft++; right–; } //printf(“%s\n”, arr2 ) ;














return 0;

}

2. 要素を見つけるための二分法

まず、二分検索を使用するための前提条件に注意する必要があります。
順序付けられた順序で検索し、ターゲット要素が見つかったらその添え字を返す必要があります。
コードのデモ:
// 1 ~ 10 の昇順配列でターゲット要素を検索し、その添え字値を見つけて返します。そうでない場合、出力は見つかりません。
int main()
{ int arr[] = { 1,2,3,4, 5,6 ,7,8,9,10 }; int k = 0; scanf("%d", &k); int 長さ = (sizeof(arr) / sizeof(arr[0])); int left = 0 ;// 左端の添字を初期化int right = length - 1;// 右端の添字を初期化int flag = 0;// 実行が見つからなかったかどうかを判定するために定義int mid = (left + right) / 2;//中央の添字を初期化//ループ判定条件:左の添字が右の添字より大きい場合は見つからずループ終了while (left <= right) { if (arr[mid] < k) { left =ミッド + 1;ミッド = (左 + 右 ) / 2; } else if (arr[mid] > k) { 右 = ミッド - 1;



















mid = (left + right) / 2;
}
else
{ printf("found, the subscript is: %d\n", mid); flag = 1; Break; } } // 見つからない場合、flag の値は次のとおりです。変更しない場合は、この if ステートメントを実行しますif (flag == 0) { printf("Not found!\n"); } return 0; }結果は次のように表示されます。













ここに画像の説明を挿入

3. 1 ~ 10 の階乗の合計を計算します。

この質問のタイトルは比較的単純です。1 ~ 10 の階乗の合計を計算するには、まず for ループを 2 つ使用することを考えなければなりません。しかし、計算を処理するために for ループを 1 つ使用すると、大幅に計算が短縮されるのではありませんか?時間の複雑さ。
まず、ほとんどの人が最初に思いつくであろう方法を示しましょう。
ここに画像の説明を挿入
この方法にも注意点があります。ret 変数を使用して数値の階乗を保存し、それを合計に加算して 1 に設定します。それ以外の場合は、多重乗算エラーが発生しました。for
ループを 1 つだけ使用する方法を以下に示します。

ここに画像の説明を挿入
ここでは、各数値に階乗を追加して合計し、後続の数値は前のretに基づいてそれ自体を乗算するだけです。この方法をお勧めします。同時に、次のことに注意する必要があります。コードを書くときに考えます。もっと簡単な方法を考えることができます。

要約する

上記の 3 つのサブトピックは私の理解のほんの一部です。不備を修正していただきありがとうございます。必ず読みます。

おすすめ

転載: blog.csdn.net/m0_71214261/article/details/131790163