【入门】猜数游戏

说明

有一个“就是它”的猜数游戏,步骤如下:请你对任意输入的一个三位数x,在这三位数后重复一遍,得到一个六位数,467-->467467.把这个数连续除以7、11、13,输出最后的商。

输入格式

输入一个三位数x。

输出格式

输出最后的商。

样例

输入数据 1

100

Copy

输出数据 1

100

题解 

我来告诉大家为什么原原本本的输出:

首先,我们来想想,如何把一个三位数(我们用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;
}

Copy

结语:学好数学,是学好编程的基础,三年级学到的运算定律在这题中派上了很大的用场,所以,我们学到知识后,要活学活用,这样才能达到学知识的目的~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值