问题标题: 酷町堂:1801 换小额钞票

0
0
已解决
被禁言 张皓轩
张皓轩
中级光能
中级光能

小明妈妈是开超市的,每天都要卖很多东西,需要准备很多零钱,某一天超市零钱不够了,于是她去银行换钞票,想把n张100元的钞票兑换成10元、20元、50元小钞票形式。请问有多少种兑换的方式呢?

0分代码:

#include<iostream>

using namespace std;

int main(){

int n,cnt=0;

cin>>n;

n*=100;

for(int a=0;a<=2;a++) {

for(int b=0;b<=5;b++){

for(int c=0;c<=10;c++){

if(a*50+b*20+c*10==i){

cnt++;

}

}

}

}

cout<<cnt;

return 0;

}

张皓轩在2021-03-05 11:51:51追加了内容

不行,超时了


0
已采纳
汪宇航
汪宇航
新手启示者
新手启示者

#pragma GCC optimize(3)

using namespace std;

int main(){

int n,cnt=0;

cin>>n;

for(int i=0;i<=n*2;i++){

for(int j=0;j<=n*5;j++){

int k=n*100-i*50-j*20;

if(k>=0){

cnt++;

}

}

}

cout<<cnt;

望采纳

0
张展嘉
张展嘉
新手天翼
新手天翼

说时话,张浩轩,这题只用2重循环就可以了,10不需要再用循环枚举

张展嘉在2021-02-23 19:34:57追加了内容

e~我好像写错了一个字

张展嘉在2021-03-02 20:43:34追加了内容

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;

if(k>=0){

cnt++;

}

}

}

别忘了输出cnt,这题我错了10次,祝你AC!!!!!!!!!!!!!!!!!!!!!!!

0
汪宇航
汪宇航
新手启示者
新手启示者

注:总钱数为n*100

for(int a=1;a<=n*100/50;a++){

for(int j=1;j<=n*100/20;j++){

for(int k=1;k<=n*100/10;k++){

if(a*50+j*20+k*10==n*100{

cnt++;

}

}

}

}

cout<<cnt;

望采纳

 

0
武奕楷
武奕楷
新手天翼
新手天翼

请问这一题有大侠100分的说说,我做了很多遍都是显示Time Limit Exceeded,最高分90分,可能是循环太多,不知道怎么简化

for(a=0;a<=n*2;a++){

     for(b=0;b<=n*5;b++){

       if(a*5+b*2<=n*10)

        cnt++;

      else break

                                    }

                                  }

 

最后就是提示 for(b=0;b<=n*5;b++)这句代码超时

 

我要回答