0
已解决
汪宇航
新手启示者
新手启示者
小明妈妈是开超市的,每天都要卖很多东西,需要准备很多零钱,某一天超市零钱不够了,于是她去银行换钞票,想把n张100元的钞票兑换成10元、20元、50元小钞票形式。请问有多少种兑换的方式呢?
输入描述 Input Description
100元的钞票的数量n张(1<=n<=10000)
输出描述 Output Description
多少种换法
样例输入 Sample Input
1
样例输出 Sample Output
10
为什么10分?拜托发一下代码吧!
汪宇航在2021-02-16 17:45:25追加了内容
@汪恺恒,可以帮我下不?
0
已采纳
汪恺恒
中级启示者
中级启示者
1:你要把循环降为两重
for(int i=0;i<=n*100/50;i++){
for(int j=0;j<=n*100/20;j++){
int k=n*100-i*50-j*20;//计算钱数差
如果k>=0 计数器+1;
}
}
2:你要加个头文件(不加只有50分)
#pragma GCC optimize(3)//加速头文件
0
汪宇航
新手启示者
新手启示者
Time Limit Exceeded:10分
汪宇航的测评结果:
测试点
结果
时间
1
Time Limit Exceeded
1980ms
偷看一下数据
2
Time Limit Exceeded
1996ms
偷看一下数据
3
Time Limit Exceeded
1672ms
偷看一下数据
4
Time Limit Exceeded
1996ms
偷看一下数据
5
Time Limit Exceeded
1996ms
偷看一下数据
6
Time Limit Exceeded
2000ms
偷看一下数据
7
Time Limit Exceeded
1992ms
偷看一下数据
8
Time Limit Exceeded
2000ms
偷看一下数据
9
Time Limit Exceeded
1988ms
偷看一下数据
10
Accepted
0ms
偷看一下数据
汪宇航的提交(cpp):
#include <iostream>
using namespace std;
int main(){
int n,cnt=0;
cin>>n;
for(int i=0;i<=n*100/50;i++
{
for(int j=0;j<=n*100/20;j++){
for(int k=0;k<=n*100/10;k++){
if(i*50+j*20+k*10==n*100){
cnt++;
}
}
}
}
cout<<cnt;
return 0;
}
0