数学逻辑编程题之马克思的趣味笔记

马克思手稿中趣味数学题:一共30人,可能有男人,女人,小孩,吃饭一共花了50先令,每个男人花3先令,每个女人花2先令,每个小孩花1先令,求男人,女人,小孩各几人
此题涉及到三个未知数,我们可以假设其中一个未知数的值来缩小其他两个未知数的范围,也可求除公式:
思路如下(不用写入主代码):

if(x==0) {
  x=0;
  y=sum02-sum01-2*x;
  z=sum02-sum01*2+x;
  
 }else if(x==1){
  x=1;
  y=sum02-sum01-2*x;
  z=sum01*2-sum02+x; 
 }else if(x==2) {
  x=2;
  y=sum02-sum01-2*x;
  z=sum01*2-sum02+x;
  
 }else if(x==3) {  
  x=3;
  y=sum02-sum01-2*x;  
  z=z=sum01*2-sum02+x;
 }
 //由此可见,x可以循环取值<30即可
           y=sum02-sum01-2*x;
           z=z=sum01*2-sum02+x;
 

重点到了

Scanner sc=new Scanner(System.in);
 
 int y;//女人的人数
 int z;//孩子的人数
 
 System.out.println("请输入总人数");
 int sum01=sc.nextInt();//总人数
 System.out.println("输入总消费金额");
 int sum02=sc.nextInt();//总消费金额
  System.out.println("方法  男人的人数  女人的人数  孩子的人数");
 for(int x=0;x<=30;x++) { //用男人的值来循环
  y=sum02-sum01-2*x;
  z=sum01*2-sum02+x;
  if(y<0||z<0) {
   break;
  } else {
  System.out.println(x+"\t"+x+"\t"+y+"\t"+z);
  }
 }
 

同理,根据动物的脚数与头数来求四只脚的动物和两只脚的动物也可以使用类似的处理,
而且更简单,只涉及到2个未知数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值