链接:https://ac.nowcoder.com/acm/contest/49888/A
来源:牛客网
牛牛带着 nn 元钱去超市买东西,超市一共只有两款商品,价格为 aa 元的篮球和价格为 bb 元的足球,牛牛想把手里的钱尽可能花光,请问牛牛最少能剩多少钱?
输入描述:
输入一行,三个正整数 n,a,b(1 \le n,a,b \le 1000)n,a,b(1≤n,a,b≤1000),nn 表示牛牛现有的钱数,aa 表示一个篮球的单价,bb 表示一个足球的单价。
输出描述:
输出一行一个整数,代表牛牛最少能剩下的钱数。
示例1
输入
复制
7 5 3
输出
复制
1
//一般比赛第一题都是for循环暴力求解
#include<iostream>
#include<algorithm>
using namespace std;
int n,a,b;
int ans=1010;
int flag=0;
void dfs()
{
if(n-a<0)//因为没有一个固定的限定条件,你要看结果的大小是否进入下一层,所有要用if else 来限定
{
ans=min(ans,n);
flag =1;
}
else
{
n-=a;
dfs();
n+=a;
}
if(n-b<0)
{
ans=min(ans,n);
flag =1;
}
else
{
n-=b;
dfs();
n+=b;
}
if(flag)
{
flag =0;
return;
}
}
int main()
{
cin>>n>>a>>b;
dfs();
cout<<ans<<endl;
return 0;
}
dfs会TLE