zzuli oj 1073 再谈鸡兔同笼问题

题目描述: 鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚。输入笼子里头的总数m和脚的总数n,求鸡和兔子各有多少只?若问题无解,也要输出相应的信息。
若问题有解,依次输出鸡和兔的只数。若问题无解,则输出"No Answer"。

分析 1007 鸡兔同笼问题的进阶版,判断问题是否有解,就是判断鸡和兔子的输出结果是否为0或正整数,如果是即为有解,输出;如果为分数或负数即为无解。
可以利用循环,每找到一组解,循环加一,最后判断循环是否为0,循环为0即为无解。
直接判断求出的解是否符合条件
选用第二种方法更加简单直接

(int)c==c&&c>=0&&r>=0
//判断得出的解是否为整数,且都不为负数
//满足这一条件,输出c和r的值
(int)c!=c||c<0||r<0//同上
//满足本条件,输出"No Answer"

代码如下:

#include<stdio.h>
#include<math.h>
int main()
{
    double m,n,c,r;
    scanf("%lf%lf",&m,&n);
    c=(4*m-n)/2;
    r=(n-2*m)/2;    
    if ((int)c==c&&c>=0&&r>=0)        
    printf("%.lf %.lf\n",c,r);    
    else        
    printf("No Answer");    
    /*if判断也可写为
    if ((int)c!=c||c<0|r<0)
    printf("No Answer");
    else printf("%.lf %.lf\n",c,r);*/
    return 0;
    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中间商

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值