7-65 【嵌套循环】【--锻炼身体A--】 (10分)PTA

王雪非常喜欢锻炼身体,她双十一的时候在淘宝上购买了一套7手的哑铃。如图所示,哑铃有不同的重量的规格。他购买的这套哑铃中只包含1、2、3、5、7、10千克的重量规格,王雪是一个富二代,她为了炫富,每一种重量规格的哑铃各买了99999999999999999999个。她给自己制定了一个锻炼方案,每天可能会组合安装不同重量的哑铃进行锻炼身体,练出自己的八块腹肌,以便更好地去学(Liao)习(Han)。她突然想到,利用 n 个哑铃组合成m千克的重量一共有几种方法呢?同一种哑铃可以使用任意个,因为他买了太多,肯定够用就是了。

timg.jpg

输入格式:
首先输入T表示接下来将会有T组册数数据要测试(T<=10000), 每组输入两个正整数 n 和 m,以空格分隔。n 代表王雪需要的哑铃数目,m 代表他要组合的重量。其中1<=n<=10,1<=m<=1000。

输出格式:
对应每组输入数据,输出不同的方案数,每组输出独占一行。

输入样例:
在这里给出一组输入。例如:

2
3 3
3 5
输出样例:
在这里给出相应的输出。例如:

1
2

这个题目的卡点就在运行时间,如果不简化,就容易运行超时,所以循环范围的 限制非常重要

在这里插入图片描述

可复制代码如下

#include<stdio.h>
#include<math.h>
int main()
{
    int T,n,m,num;
    scanf("%d",&T);
    for(int i=0;i<T;i++)
    {   scanf("%d %d",&n,&m);
        num=0;
          for(int a=0;a<=n;a++)
           for(int d=0;d<=n-a;d++)
            for(int o=0;o<=n-a-d;o++)
             for(int p=0;p<=n-a-d-o;p++) 
                for(int u=0;u<=n-a-d-o-p;u++)
                    if(a*10+d*7+o*5+p*3+u*2+n-o-p-u-a-d==m)num++;
     printf("%d\n",num);    }
     return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

~晚风微凉~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值