C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++ではXで割り切れるが、Yでは割り切れない1からNの範囲の数値をカウントします。


数値Nが提供されます。目標は、YではなくXで割り切れ、[1、N]の範囲にある数値を見つけることです。

例を挙げて理解しましょう。

入力

N=20 X=5 Y=20

出力

Numbers from 1 to N divisible by X not Y: 2

説明

Only 5 and 15 are divisible by 5 and not 10.

入力

N=20 X=4 Y=7

出力

Numbers from 1 to N divisible by X not Y: 5

説明

Numbers 4, 8, 12, 16 and 20 are divisible by 4 and not 7.

以下のプログラムで使用されているアプローチは次のとおりです

  • 整数Nを取ります。

  • 関数divisibleXY(int x、int y、int n)は、YではなくXで割り切れる1からNまでの数値のカウントを返します。

  • このような数値の場合、初期変数カウントを0とします。

  • forループを使用して数値の範囲をトラバースします。 i=1からi=n

  • ここで、各数値iについて、真の増分カウントであるかどうか(i%x ==0 &&i%y!=0)を確認します。

  • 結果としてカウントを返します。

#include <bits/stdc++.h>
using namespace std;
int divisibleXY(int x, int y, int n){
   int count = 0;
   for (int i = 1; i <= n; i++) {
      if(i%x==0 && i%y!=0 )
         { count++; }
   }
   return count;
}
int main(){
   int N = 100;
   int X=6, Y=8;
   cout <<"Numbers from 1 to N which are divisible by X and not Y: "<< divisibleXY(X,Y,N);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Numbers from 1 to N which are divisible by X and not Y: 12

  1. C++のバイナリ行列で1によってブロックされているすべての0をカウントします

    このチュートリアルでは、バイナリ行列で1によってブロックされている0の数を見つけるプログラムについて説明します。 このために、バイナリマトリックスが提供されます。私たちのタスクは、1によってブロックされているマトリックス内のすべての0を見つけてカウントすることです。 例 #include <iostream> using namespace std; #define Row 4 #define Col 5 int r[4] = { 0, 0, 1, -1 }; int c[4] = { 1, -1, 0, 0 }; bool isSafe(int x, int y, int M[

  2. C++で3で割り切れるが6で割り切れないnの順列を見つける

    数nがあり、この数の順列を見つける必要があるとします。これは3で割り切れますが、6で割り切れません。そのような値を作成できない場合は、-1を返します。たとえば、nが336の場合、出力は363になります。 数字が6で割り切れるということは、3と2で割り切れるということです。したがって、3で割り切れる各偶数は、6で割り切れます。3で割り切れる数の桁を入れ替えると、 、奇妙なことに、それは結果になります。 例 #include<iostream> #include<cmath> using namespace std; int findNumber(int n) { &nb