NがCで移動した後、配列内の1の数をカウントします
-
1番目の移動-位置1、2、3、4で要素を変更します…………..
-
2番目の移動-位置2、4、6、8で要素を変更します…………..
-
3番目の移動-位置3、6、9、12で要素を変更します…………..
最後の配列の1の数を数えます。
例を挙げて理解しましょう。
入力
Arr[]={ 0,0,0,0 } N=4 出力
Number of 1s in the array after N moves − 2
説明 −次の移動後の配列-
Move 1: { 1,1,1,1 }
Move 2: { 1,0,1,0 }
Move 3: { 1,0,0,3 }
Move 4: { 1,0,0,1 }
Number of ones in the final array is 2. 入力
Arr[]={ 0,0,0,0,0,0} N=6 出力
Number of 1s in the array after N moves − 2
説明 −次の移動後の配列-
Move 1: { 1,1,1,1,1,1,1 }
Move 2: { 1,0,1,0,1,0,1 }
Move 3: { 1,0,0,1,0,0,1 }
Move 4: { 1,0,0,0,1,0,0 }
Move 5: { 1,0,0,0,0,1,0 }
Move 4: { 1,0,0,0,0,0,1 }
Number of ones in the final array is 2. 以下のプログラムで使用されているアプローチは次のとおりです
-
0と整数Nで初期化された整数配列Arr[]を使用します。
-
関数OnecountはArr[]を受け取り、そのサイズはNであり、noを返します。 Nが移動した後の最終配列にあるものの数。
-
forループは1から配列の終わりまで始まります。
-
各iはi番目の動きを表します。
-
ネストされたforループは、0番目のインデックスから配列の終わりまで始まります。
-
i番目の移動ごとに、インデックスjがiの倍数(j%i ==0)の場合、その位置で0を1に置き換えます。
-
このプロセスは、配列の最後までiごとに続行されます。
-
注 −インデックスはi =1、j =1から始まりますが、配列インデックスは0からN-1までです。このため、arr[j1]は毎回変換されます。
-
最後に、配列全体を再度トラバースし、noをカウントします。 1の内にあり、カウントに保存します。
- 希望する結果としてカウントを返します。
例
#include <stdio.h>
int Onecount(int arr[], int N){
for (int i = 1; i <= N; i++) {
for (int j = i; j <= N; j++) {
// If j is divisible by i
if (j % i == 0) {
if (arr[j - 1] == 0)
arr[j - 1] = 1; // Convert 0 to 1
else
arr[j - 1] = 0; // Convert 1 to 0
}
}
}
int count = 0;
for (int i = 0; i < N; i++)
if (arr[i] == 1)
count++; // count number of 1's
return count;
}
int main(){
int size = 6;
int Arr[6] = { 0 };
printf("Number of 1s in the array after N moves: %d", Onecount(Arr, size));
return 0;
} 出力
上記のコードを実行すると、次の出力が生成されます-
Number of 1s in the array after N moves: 2
-
入力された数字の1の数を数えるC#プログラム
配列を使用して数字を追加しました- int[] num = new int[] {1, 25, 1, 55, 1}; ここでループして1を見つけ、1があれば、6を見つけて、発生をカウントする変数をインクリメントします- foreach(int j in num) { if (j == 1) { cal++; } } 例 以下は、入力した数字の1の数を数えるコードです。 using System; public class Demo { public static voi
-
文字列内の単語数をカウントするC#プログラム
最初に文字列を宣言しましょう- string str = "Hello World!"; 次に、文字列全体をループして、空白、タブ、または改行文字を見つけます- while (a <= str.Length - 1) { if(str[a]==' ' || str[a]=='\n' || str[a]=='\t') { myWord++; } a++; } 例 C#で文字列内の単語数をカウントするた