题意:
For example, the number 2991 has the sum of (decimal) digits 2+9+9+1 = 21. Since 2991 = 1*1728 + 8*144 + 9*12 + 3, its duodecimal representation is 189312, and these digits also sum up to 21. But in hexadecimal 2991 is BAF16, and 11+10+15 = 36, so 2991 should be rejected by your program.
Sample Input
There is no input for this problem
Sample Output
2992
2993
2994
2995
2996
2997
2998
2999
代码实现:
#include<iostream>
using namespace std;
int duo(int n) {
int a[4] = {0};
int i = 0;
while (n > 0) {
a[i] = n%12;
n /= 12;
i++;
}
return a[0] + a[1] + a[2] + a[3];
}
int hexa(int n) {
int a[4] = {0};
int i = 0;
while (n != 0) {
a[i] = n%16;
n /= 16;
i++;
}
return a[0] + a[1] + a[2] + a[3];
}
int dec(int n) {
int a[4] = {0};
int i = 0;
while (n != 0) {
a[i] = n%10;
n /= 10;
i++;
}
return a[0] + a[1] + a[2] + a[3];
}
int main() {
int num;
for (int i = 2900; i < 10000; i++) {
if (dec(i) == duo(i)&&dec(i) == hexa(i))
cout << i << endl;
}
return 0;
}