C++のループにもforループやwhileループなどたくさんの種類がありますが、以下ではこれら2つのループの機能と使い方を紹介します。
1.forループ
for ループとは何ですか?
for ループは一般的なプログラミング言語のループ文であり、このループ文はループ本体とループ条件で構成されており、式を簡単にまとめると、 for (初期変数の定義、ループ条件、変数の変更) となります。
例
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n=5, sum=0;
for(int i=1;i<=n;i++)
{
sum++;
}
cout<<sum<<endl;
return 0;
}
出力結果:5
2. while ループ
whileループ ステートメントは、括弧内に指定された条件が true である限り、 ターゲット ステートメントを繰り返し実行します。
例
#include <iostream>
using namespace std;
int main ()
{
int n = 10;
while( n < 20 )
{
cout << "n 的值:" << n << endl;
n++;
}
return 0;
}
操作結果:
nの値: 10 nの値: 11 nの値: 12 nの値: 13 nの値: 14 nの 値 : 15 nの値: 16 nの 値: 17 nの 値 : 18 nの値: 19
3. do-while ループ
do...while ループは、ループの最後にその状態をチェックします。do...while ループは while ループに似ていますが、do...while ループはループが少なくとも 1 回実行されることを保証します。
例
#include <iostream>
using namespace std;
int main ()
{
int a = 1;
do
{
cout << a << endl;
a++;
}while( a < 10 );
return 0;
}
操作結果:
1 2 3 4 5 6 7 8 9
4. ネスティング
C 言語では、if-else、while、do-while、for はすべて互いにネストできます。いわゆるネスト (Nest) とは、ステートメントに別のステートメントが含まれていることを意味します。たとえば、for の中に for があり、while の中に while があったり、for の中に while があり、while の中に if-else が入ったりするなどです。それらはすべて許可されています。
例
#include<iostream>
using namespace std;
bool a[1001];//在数组被定义为布尔变量时初始值都为零
int main()
{
//埃氏筛
//质数的倍数一定不是质数
//所以只要从最小的数开始对质数的倍数进行标记,就可以找出质数
int n;
cin>>n;
for(int i=2;i<=n;i++)
{
if(a[i]==1)//“0”代表是质数“1”代表不是
{
continue;//意思是不进行下面的操作,直接进入新的循环
}
cout<<i<<endl;
for(int j=i;i*j<=n;j++)
{
a[i*j]=1;
}
}
return 0;
}
5を入力すると
操作結果:
2 3 5
練習してみよう!
1. ループ加算の場合
【説明】
for ループを使用します。出力 1+2+3+...+n の合計を計算します。
【入力】
「n」を入力します。
【出力】
タイトルの通り、合計です。
【入力サンプル】
10
【出力例】
55
2. アイテム
【説明】
正の整数 n、m について、s=1+2+3...+n を求めます。どの項目に加算すると、s の値が m を超えますか?
【入力】
「m」と入力します。
【出力】
出力n。
【入力サンプル】
1000
【出力例】
45
【ヒント】
【データ範囲】
すべてのデータの場合: 1≤m≤40000
3. 下2桁
【説明】
n 1992 の積の下 2 桁は何ですか?
【入力】
「n」を入力します。
【出力】
タイトルの下二桁のように。
【入力サンプル】
3
【出力例】
88
【ヒント】
【データ範囲】
すべてのデータの場合: n<2000。
4. 階乗と
【説明】
S=1!+2!+3!+....+n! を求めます。
【入力】
正の整数 n を入力します。
【出力】
出力 s。
【入力サンプル】
3
【出力例】
9
【ヒント】
【データ範囲】
すべてのデータの場合: 1≤n≤10。
5. 階乗の合計
【説明】
n を入力して、S=1!+2!+3!+…+n! (先頭の 0 を除く) の最後の 66 ビットを計算します。n≤10 の 6 乗、n! は最初の n 個の正の整数の積を表します。
【入力】
「n」を入力します。
【出力】
タイトルの通り、合計です。
【入力サンプル】
10
【出力例】
37913
【ヒント】
【データ範囲】
すべてのデータについて、1≤n≤999999。
答え
一。
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int sum = 0;
for(int i = 1; i<=n;i++)//for循环
{
sum += i;//"+="的意思是把i里的值累加到c里
}
cout<<sum;
return 0;
}
二。
#include<iostream>
using namespace std;
int main()
{
int m;
cin>>m;
int s=0,n=0;
while(s<=m)
{
n++;
s+=n;
}
cout<<n<<endl;
return 0;
}
三つ。
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int i=1;
int ans=1;
do
{
ans=ans*1992%100;
i++;
}while(i<=n);
cout<<ans<<endl;
return 0;
}
四。
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int S=0;
for(int i=1;i<=n;i++)
{
int s=1;
for(int j=1;j<=i;j++)
{
s*=j;
}
S+=s;
}
cout<<S<<endl;
return 0;
}
五。
#include<iostream>
using namespace std;
int main()
{
const int N=1e6;//const int 常变量
int n;
cin>>n;
long long S=0,s=1;
for(int i=1;i<=n;i++)
{
s=s*i%N;
S=(S+s)%N;
}
cout<<S<<endl;
return 0;
}
あなたはすべて正しくやっていますか?
最初の問題が正解できれば、for ループを最初にマスターしたことを意味します。2 番目の問題が正解できたら、while ループを最初にマスターしたことを意味します。3 番目の問題が正解できれば、それはは、最初に do 全体のループをマスターしたことを意味します。4 番目の質問が正しく答えられる場合は、ネストされたループを基本的にマスターしたことを意味します。5 番目の質問がまだ正しく答えられる場合は、これらのスキルを熟練したことを意味します。 、次の章の学習を開始できます