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

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) {
   int digit_count = ceil(log10(n));
   for (int i = 0; i < digit_count; i++) {
      if (n % 2 != 0) {
         return n;
      } else {
         n = (n / 10) + (n % 10) * pow(10, digit_count - i - 1);
         continue;
      }
   }
   return -1;
}
int main() {
   int n = 132;
   cout <<"The permutation of "<<n << " that is divisible by 3 but not by 6 is:"<< findNumber(n);
}

出力

The permutation of 132 that is divisible by 3 but not by 6 is:213

  1. C++で多数が25で割り切れるかどうかを確認します

    ここでは、数値が25で割り切れるかどうかを確認する方法を説明します。この場合、その数は非常に多い数です。したがって、数値を文字列として入力します。 最後の2桁が00の場合、数値は25で割り切れます。または、25で割り切れます。 例 #include <bits/stdc++.h> using namespace std; bool isDiv25(string num){    int n = num.length();    int last_two_digit_val = (num[n-2] - '0') * 10 +

  2. C++で多数が11で割り切れるかどうかを確認します

    ここでは、数値が11で割り切れるかどうかを確認する方法を説明します。この場合、その数は非常に多い数です。したがって、数値を文字列として入力します。 数値が11で割り切れるかどうかを確認するには、奇数の位置の値の合計と偶数の位置の値の合計が同じである場合、その数値は11で割り切れます。 例 #include <bits/stdc++.h> using namespace std; bool isDiv11(string num){    int n = num.length();    long odd_sum = 0, even_sum =