1元、5元、10元、20元、50元、100元六種面額,輸入N,計算有多少種組合可以等於N


有足夠多的1元、5元、10元、20元、50元、100元六種面額的紙幣,輸入N,計算出有多少種組合可以等於N;

如輸入N=5,則返回2。因為有兩種組合:1+1+1+1+1=5,5=5,即5張1元或者1張5元;

Java代碼如下:

public class Test{
public int getGroups(int N){
int round5=(int) Math.floor(N/5); //N除以5並向下取整
int round10=(int) Math.floor(N/10);
int round20=(int) Math.floor(N/20);
int round50=(int) Math.floor(N/50);
int round100=(int) Math.floor(N/100);
int num=0;
if(N>0&&N<5){ //N取值大於0小於5
num=1;
}
if(N>=5&&N<10 && round5>0){ //N取值大於等於5小於10
for(int i5=0;i5<=round5;i5++){
int n5=N-(5*i5);
if(n5>=0){
num=num+1;
}
}}
if(N>=10&&N<20 && round5>0&& round10>0){ //N取值大於等於10小於20
for(int i5=0;i5<=round5;i5++){
for(int i10=0;i10<=round10;i10++){
int n10=N-(5*i5+10*i10);
if(n10>=0){
num=num+1;
}}}}
if(N>=20&&N<50 && round5>0&& round10>0&&round20>0){ //N取值大於等於20小於50
for(int i5=0;i5<=round5;i5++){
for(int i10=0;i10<=round10;i10++){
for(int i20=0;i20<round20;i20++){
int n20=N-(5*i5+10*i10+20*i20);
if(n20>=0){
num=num+1;
}}}}}
if(N>=50&&N<100 && round5>0&& round10>0&&round20>0&&round50>0){ //N取值大於等於50小於100
for(int i5=0;i5<=round5;i5++){
for(int i10=0;i10<=round10;i10++){
for(int i20=0;i20<round20;i20++){
for(int i50=0;i50<round50;i50++){
int n50=N-(5*i5+10*i10+20*i20+50*i50);
if(n50>=0){
num=num+1;
}}}}}}
if(N>=100 && round5>0&& round10>0&&round20>0&&round50>0&&round100>0){ //N取值大於等於100
for(int i5=0;i5<=round5;i5++){
for(int i10=0;i10<=round10;i10++){
for(int i20=0;i20<round20;i20++){
for(int i50=0;i50<round50;i50++){
for(int i100=0;i100<round100;i100++){
int n100=N-(5*i5+10*i10+20*i20+50*i50+100*i100);
if(n100>=0){
num=num+1;
}}}}}}}
return num;
}
public static void main(String[] args){
Test test=new Test();
int num=test.getGroups(4);
System.out.println(num);
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 一家商場在降價促銷,如果購買金額50-100元(包含50元和100元)之間,會給10%的折扣, # 如果購買金額大於100元會給20%的折扣,編寫一程序,詢問購買價格,在顯示出折扣(%10或20%)和最終價格 題目:企業發放的獎金根據利潤提成。 利潤(I)低於或等於10萬元時,獎金可提10%; 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提成7.5%; 20萬到40萬之間時,高於20萬元的部分,可提成5%; 40萬到60萬之間時高於40萬元的部分,可提成 3%; 60萬到100萬之間時,高於60萬元的部分,可提成1.5%; 高於100萬元時,超過 企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高    於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提    成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於    40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於    100萬元時,超過 換零鈔問題:一張100元,換成20,10,5,1面值的零鈔,每種至少一張,共有哪些換法,總計多少種換法? 給一個字符串"123456789", 在任意字符中間插入“+”、“-”、“*”、“/”四種運算符,使最后的計算結果等於50。 例如你可以如此插入:1*2*3*4-56-7+89,使這個式子的最終結果等於50。 輸出所有可能的式子結果 添零占位 —— 快速生成N個0的六種辦法 輸入一個正整數repeat(0 文本框中只能輸入小於等於100的正整數 企業發放的獎金根據利潤提成。利潤I低於或等於100000元的,獎金可提成10%;利潤高於100000元,低於200000元(100000 UML的六種關系
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM