5 条题解
-
0
思路:
- 数字位于123到987之间;且不能重复;所以需要使用某种方式标记数字1-9是否被使用;
- 用int充当位图来存储1-9是否完全覆盖;
#include <iostream> using namespace std; int status = 0; /** * 将value每个位上的数字所对应的位置设置为1,表示存在; * eg. 3 ==> 0b1000;右移三位 * param value: 数字 */ void set_bit(int value){ while(value>0){ status |= 1 << (value%10); value /=10; } } int main(){ for(int i = 123; i < 333; ++i){ set_bit(i); set_bit(i*2); set_bit(i*3); int ob = status & 0b1111111110; if(ob==0b1111111110){ cout<<i<<" "<<i*2<<" "<<i*3<<endl; } status = 0; } return 0; }
- 数字位于123到987之间;且不能重复;所以需要使用某种方式标记数字1-9是否被使用;
信息
- ID
- 5066
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 2
- 标签
- 递交数
- 626
- 已通过
- 335
- 上传者