搜索
写经验 领红包

鸡兔交换问题公式(交换变量a和b的值程序)

在生活中,很多人可能想了解和弄清楚详解信息学奥赛 七.交换变量的值 鸡兔同笼的相关问题?那么关于鸡兔交换问题公式的答案我来给大家详细解答下。

鸡兔交换问题公式(交换变量a和b的值程序)

在C++中“=”作为赋值运算符,我们之前已经用过很多次了。

今天我们主要讲一下《信息学奥赛一本通》赋值语句这一节中的两道例题。

例一. 输入两个正整数a和b,试交换a和b的值。

这道题有一个陷阱,如果我们之前没接触过这种题,很容易被坑。写成这样:

但是我们发现,程序运行之后,完全不是我们要的结果:

到底是哪错了呢?

问题就出在这:

a=b;

b=a;

假如说我们输入a的值是1,b的值是2.

在a=b这步时,a的值就是2了

然后让b=a,b还是2 。

这就不是互换了,而是都变成b的值了。

我们要达到互换的 目的,我们需要一个用来中转的变量c。

这样,我们先把a的值赋给c,然后把b的值赋给a,再把c的值赋给b,这样就可以了。

看看运行结果,这回换过来了:

例三. 鸡兔同笼。

笼子里有若干只鸡和兔,头共30个,脚共90只。问笼中鸡和兔各有多少只?

在这道题里,我们可以定义4个变量,c r f h

c代表鸡,r代表兔,f代表脚,h代表头

根据题意,我们可以得到:

c+r=h

2c+4r=f

如果我们解数学题,可以将这两个等式列一个方程组,然后计算出来就可以了。

不过在C++中这样显然是不行的,因为我们不能把一个值赋给一个表达式。

所以需要我们稍微计算一下。经过计算我们得出:

c=h-r

2(h-r)+4r=f

r=(f-2h)/2

现在我们可以编写代码了:

温馨提示:通过以上关于详解信息学奥赛 七.交换变量的值 鸡兔同笼内容介绍后,相信大家有新的了解,更希望可以对你有所帮助。