百元买百笔问题

题目描述

Kiki⽤n元买n⽀笔,单价:钢笔3元,圆珠笔2元,铅笔0.5元问:各买多少⽀(每种笔⾄少⼀支)。

输入描述:

一个整数n(1 ≤ n ≤ 200 )。

输出描述:

如果存在多个答案,每行输出一组答案,3个整数,空格间隔,分别表示钢笔、圆珠笔、铅笔各买多少。如果答案不存在,输出“Not found!”。

满足条件为:用n元买n支笔,其中钢笔的单价为3元,圆珠笔的单价为2元,铅笔的单价为0.5元,要求每种笔至少买一支。

代码中的三个嵌套for循环分别代表钢笔、圆珠笔和铅笔的数量。循环的取值范围分别为[1, n/3],[1, n/2]和[1, n*2],保证了每种笔至少买一支。

在每一次循环中,判断是否满足以下两个条件:
1. 3倍钢笔数量 + 2倍圆珠笔数量 + 0.5倍铅笔数量等于n(即总价等于n)
2. 钢笔数量 + 圆珠笔数量 + 铅笔数量等于n(即笔的总数量等于n)

如果满足这两个条件,就输出当前的钢笔数量、圆珠笔数量和铅笔数量,并将计数变量m加1。

最后,如果没有找到满足条件的整数分解,即m仍为0,程序输出"Not found!"。

代码

#include <iostream>
using namespace std;
int main()
{
    int n,m=0;
    cin>>n;
    for(int i=1;i<=n/3;i++)
    {
        for(int j=1;j<=n/2;j++)
        {
            for(int k=1;k<=n*2;k++)
            {
                if(3*i+j*2+k*0.5==n&&i+j+k==n)
                {
                    cout<<i<<" "<<j<<" "<<k<<endl;
                    m++;
                }
            }
        }
    }
    if(m==0)
    {
        cout<<"Not found!"<<endl;
    }
}
 

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值