在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 << " 可被3整除但不能被6整除的是:"<< findNumber(n);
}输出结果
The permutation of 132 可被3整除但不能被6整除的是:213
热门推荐
10 生日公众号祝福语简短
11 文案写信祝福语大全简短
12 除夕简短祝福语给老师
13 分手后祝福语简短高级
14 战友聚会祝福语大全简短
15 早餐店开张祝福语简短
16 美团红包祝福语简短
17 喜得麟儿的简短祝福语
18 祖国生日祝福语简短情话