當前位置:編程學習大全網 - 源碼下載 - C語言問題:要將100元錢換成1元,2元,5元的零錢,編程求出有幾種換法?這麽編程為什麽不行?求高手指教!

C語言問題:要將100元錢換成1元,2元,5元的零錢,編程求出有幾種換法?這麽編程為什麽不行?求高手指教!

程序源碼如下:

循環嵌套循環次數少的盡量在外!

#include<iostream>

#include<stdlib.h>

using namespace std;

int main()

{

int count = 0;//換法數量

int temp;

int m = 100;//總錢數

int a = 1;//1元面值

int b = 2;//2元面值

int c = 5;//5元面值

//a, b, c的值還可以是10,20,50

for (int i = 0; i <= m / b; ++i)//++i的意義在於100必須換成三類紙幣,需要大於等於1張

{

for (int j = 0; j <= m / c; ++j) //5元

{

temp = m - (b * i + c * j);

//只要2元和5元的總和加起來不大於100,剩下的都換1元

if (temp >= 0 && temp % a == 0)

{

++count;//換法種數+1

}

}

}

cout << "換法有" << count << "種\n";//輸出換法種數

system("pause");

return 0;

}

程序運行結果如下:

擴展資料:

其他實現方法:

#include <stdio.h>

int main()

{

int x,y,z,i=0;

for(x=0;x<=20;x++)

for(y=0;y<=50;y++)

for(z=0;z<=100;z++)

{

if(x*5+2*y+z==100)

i++;

}

printf("There are %d ways.\n",i);

return 0;

}

  • 上一篇:汽車油耗變高是什麽情況?
  • 下一篇:適合發布朋友圈的借酒消愁的經典文案句子收藏(48句)
  • copyright 2024編程學習大全網