网上看到篇关于数学题的文章,挺好玩的
http://379910987.blog.163.com/blog/static/33523797201122205650633/
我贴下来:
有这么道题目:在自动贩卖机里卖巧克力派,1块钱一个,每个巧克力派里面都有一张优惠卷,凑够7个优惠卷换一个巧克力派,问N块钱,可以买+换多少巧克力派,并剩下几张优惠卷。
例如:
输入:20
输出:巧克力:23 优惠卷:2
程序代码如下:
#include <stdio.h
#include <stdlib.h>
int main(int argc, char *argv[])
{
int qian,quan,total;
int i=0;
scanf("%d",&qian);
total=qian;
quan=qian;
while((int)(quan/7))
{
total+=quan/7;
quan=quan%7+quan/7;
}
printf("巧克力:%d,剩余券:%d\n",total,quan);
system("PAUSE");
return 0;
}
这本来是一个很简单的问题,不过我以前碰到一个更有意思的题目:
话说汽水一元钱一瓶,三个空瓶又可以换一瓶汽水,问现在有1000元钱,能呵多少瓶汽水呢?
哈哈,这还不简单,用上面的程序跑一下就可以了,只要把7变为3,输出格式修改一下不就OK了吗?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int qian,quan,total;
int i=0;
scanf("%d",&qian);
total=qian;
quan=qian;
while((int)(quan/3))
{
total+=quan/3;
quan=quan%3+quan/3;
}
printf("汽水:%d,剩余空瓶:%d\n",total,quan);
system("PAUSE");
return 0;
}
看看运行结果:
1000
汽水:1499,剩余空瓶:2
看起来不错吧?如果你是一个汽水自动贩卖机,那么完全正确,问题的关键是还剩下两个空瓶
如果是一个精明的小商店老板,你拿两个空瓶去换一瓶汽水,理论上上你是欠他一个瓶子的,但是别忙,喝完那瓶汽水你马上给老板,这事不就搞定了吗?
所以实际上你能够喝到1500瓶汽水,并且不剩一个空瓶子
但是还没完,我们来做一道方程题目:
1瓶汽水=一个汽水瓶容量的汽水(不含瓶子)+1个空瓶
3个空瓶=1瓶汽水
现在好了,简单的两个方程联立,你就会得到:一个汽水瓶容量的汽水(不含瓶子)=2个空瓶
于是,你用1000元钱得到1000汽水和1000个空瓶子之后,
立马将1000个空瓶=500汽水
于是你得到了1500汽水
这应该是最简单的了。不过机器呢,就不知道允不允许你赊欠了。