4 条题解
-
0
其实这个问题本质是个数学问题,设满足题意的数为10x+y,则我们知道有这样的方程: 10x+y=x+y+xy 化简得: 9x=xy 两边同除x,得y=9。由于x被消去,所以可以取1-9,于是可知19,29,39,49,59,69,79,89,99满足题意。 据此可以这样写出代码:
using namespace std; int main() { for (int i=19;i<100;i+=10) { cout<<i<<endl; } }
当然,不懂这些,我们也可以简单粗暴地直接枚举并判断。例如
#include <iostream> using namespace std; int main() { int s1,s2;//s1表示10x+y,s2表示x+y+x*y. for (int i=1;i<10;i++) { for (int j=0;j<10;j++) { s1=10*i+j; s2=i+j+i*j; if (s1==s2) { cout<<s1<<endl; } } } }
虽然用时多一点,但也是无妨的。
- 1
信息
- ID
- 719
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 106
- 已通过
- 72
- 上传者