测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A40873. 神奇六位数

填空题 困难

题目描述

神奇六位数

题目描述

有一个6位的正整数,它有个很神奇的性质:

分别用 2、3、4、5、6去乘它,得到的仍然是6位数,并且乘积中所包含的数字与这个6位数完全一样!只不过是它们的顺序重新排列了而已。

请计算出这个6位数。

答案提交

这是一个整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字)

参考答案

#include <iostream> #include <cstring> using namespace std; int tmp[10], s[10]; void record(int n) { memset(tmp, 0, sizeof tmp); // 重置 计数数组1 !! while(n) { tmp[n % 10] ++; n /= 10; } } bool judge(int x) { memset(s, 0, sizeof s); // 重置 计数数组2 !! while(x) { s[x % 10] ++; x /= 10; } for (int i = 0; i < 10; i ++) if(tmp[i] != s[i]) return false; return true; } int main() { for (int i = 100000; i < 999999; i ++) { record(i); if(judge(2*i) && judge(3*i) && judge(4*i) && judge(5*i) && judge(6*i)) { cout << i << endl; return 0; } } }

答案解析

答案:142857

上一题 下一题