8 条题解
-
3
我来告诉大家为什么原原本本的输出:
首先,我们来想想,如何把一个三位数(我们用n来表示)在它后面重复一遍呢?其实很简单,乘上1001就行了(首先,要新增三位,就是先将n乘上1000,接着,再加上n,把后三位的空缺补上,就完成啦,整个过程可以用n * 1000 + n这个算式来表示,接着我们可以用乘法分配律,把他先化为n * 1000 + n * 1,再化为n * (1000 + 1), 最后化为n * 1001);
题目还要求:把这个六位数(n * 1001)连续除以7、11和13。那全部算式就可以用n * 1001 / 7 / 11 / 13来表示,我们可以利用除法的性质,把他化为n * 1001 / (7 * 11 * 13),我们试着算一下7 * 11 * 13的结果,就可以发现,7 * 11 * 13 = 1001!
有些人可能还不明白,那让我们回到之前的算式,即n * 1001 / (7 * 11 * 13),再把它化为n * 1001 / 1001,这时,乘1001会跟除以1001抵消,最终的结果便变成了n,也就是说,最终的结果跟刚开始一模一样!
这就是为什么原原本本的输出。那我们明白了这一点,代码不就简单了吗?一个学到Level1的应该都会(输入一个数n,再将它原原本本的输出,原因在上面已经讲过了),不多说,接下来上代码!
已AC,请放心食用
#include <iostream> using namespace std; int main() { int n; cin >> n; cout << n; return 0; }
结语:学好数学,是学好编程的基础,三年级学到的运算定律在这题中派上了很大的用场,所以,我们学到知识后,要活学活用,这样才能达到学知识的目的~
- 1
信息
- ID
- 958
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 1
- 标签
- 递交数
- 74
- 已通过
- 62
- 上传者