题意:让求从2992-9999中所有数字,满足10进制各位之和和12进制和16进制各位数字之和相等。
析:没啥可说的,只能枚举从2992-9999,每个进制都算一下。
代码如下:
#include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <vector> #include <cstring> #include <map> using namespace std; const int maxn = 70; int itoa_n(int n, int r){ int ans = 0; while(n){ ans += n % r; n /= r; } return ans; } int main(){ for(int i = 2992; i < 10000; ++i){ if(itoa_n(i, 10) == itoa_n(i, 12) && itoa_n(i, 10) == itoa_n(i, 16)) printf("%d\n", i); } return 0; }
时间: 2025-01-01 12:17:47