蓝桥杯和noip都考C语言么,[蓝桥杯][历届试题]买不到的数目 (C++代码)

解题思路:

注意事项:

参考代码:#include

#include

using namespace std;

int check(int n,int c,int d)

{

while(n>0) //不能写成 while(n)(当n<0时也会成立)

{

if(n%c==0||n%d==0)

return 1;

if((n-c)%d==0||(n-d)%c==0)

return 1;

n-=c+d;

}

return 0;

}

int main()

{

int a,b;

while(cin>>a>>b)

{

int c=min(a,b);

int d=max(a,b);

int ok=0,ans=0;

for(int i=d;;i++) //虽然c和d之间的数目也有买不到的数目,但却不是最大的,故不用考虑

{

if(ok==c)

break;

// ok表示可以连续买到的数目,c表示两包糖中较少的那包的糖的数目

// 如果连续 c个糖果数可以买到,那么之后的所有糖果数都可以买到

// 假设从糖果数i可以买到,且连续 c 个糖果数都可以买到,即i,i+1,i+2,i+3,...,i+c-1,都可以买到

// 那么糖果数为 i+c 就可以用 糖果数i 加上c 组合成,以此类推,i+c+1=(i+1)+c,...

// 因此从糖果数 i及以后的数目都可以买到,故 i-1 买不到的最大数目

// 当然这里是有公式的:a,b为两个质数,则不能用a,b表示的最大的数为: a*b-(a+b)

if(check(i,c,d))

{

if(ok==0)

{

ans=i;

}

ok++;

}

else

{

ok=0;

}

}

cout<

}

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值