链接:https://ac.nowcoder.com/acm/contest/49888/A 来源:牛客网 牛牛带着 nn 元钱去超市买东西,超市一共只有两款商品,价格为 aa 元的篮球和价格为 bb 元的足球,牛牛想把手里的钱尽可能花光,请问牛牛最少能剩多少钱?
时间: 2023-02-07 17:00:06 浏览: 219
牛牛想要尽可能地花光手里的钱,那么他就应该买尽可能多的商品。假设牛牛买了 x 个价格为 a 元的篮球和 y 个价格为 b 元的足球,则牛牛手中剩余的钱数为 nn - ax - by。牛牛希望剩余的钱数尽可能地小,所以我们需要使这个数尽可能地接近 0。
我们可以使用数学中的欧几里得算法来求解这个问题。欧几里得算法是一种用于求解两个正整数 a 和 b 的最大公约数的算法,可以求出最大的正整数 d,使得 a 和 b 都能被 d 整除。
我们可以使用欧几里得算法来求出 a 和 b 的最大公约数 d。然后我们就可以求出 x 和 y 的值,使得 nn - ax - by 最小。
欧几里得算法的具体步骤如下:
- 如果 a 等于 0,则 d 等于 b,x 等于 0,y 等于 1;
- 否则,计算 b 除以 a 的余数 r,然后递归调用欧几里得算法来求解 a 和 r 的最大公约数 d,x 和 y 的值就分别是 d 的上一次递归调用中的 y 和 x 减去 b 除以 a 的商乘以 y。
最后,我们可以使用 x 和 y 的值来计算牛牛手
相关问题
链接:https://ac.nowcoder.com/acm/contest/67628/1005 来源:牛客网 KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正斜线形图案。(用c++打出
以下是用C++打印正斜线形图案的代码:
```
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i - 1; j++) {
cout << " ";
}
cout << "*" << endl;
}
return 0;
}
```
https://ac.nowcoder.com/acm/contest/67743/L
很抱歉,我无法访问互联网上的链接。但是,我可以为您提供一些关于Nowcoder的一般信息。
Nowcoder是一个面向程序员的在线学习和竞赛平台,提供各种编程题目和算法竞赛。链接中的https://ac.nowcoder.com/acm/contest/67743/L可能是一个Nowcoder的竞赛链接,其中的"/acm/contest/67743/L"可能是竞赛的具体页面或题目链接。
如果您对Nowcoder平台或者竞赛有任何具体问题,我会尽力回答。请提出您的问题。
阅读全文