Problem : 找钱问题
Problem : 找錢問題
Time Limit: 1 Sec??Memory Limit: 64 MB
Submit: 12397??Solved: 3423
Description
買火車票時經常會碰到找錢問題。售票員手中有50、20、10、5、1元的錢幣,你知道怎么找錢才能使找回的零錢張數最少嗎?
Input
多組測試數據,輸入需要找錢的錢數
Output
輸出按下面格式: 第一行輸出"change:",然后是你要找的錢 以下幾行按面值從大到小輸出要找的張數,格式如下:50 yuan: 1,如果1張也沒有就不需要輸出
Sample Input
76Sample Output
change:76 50 yuan: 1 20 yuan: 1 5 yuan: 1 1 yuan: 1HINT
這道題要審題。題目中是有10元紙幣的。然后樣例是因為0張不輸出。另外在多次嘗試之后題目的意思輸入0的時候change:0還是要的,因為題目要第一行輸出change:
代碼如下:
#include<stdio.h>
int main(void)
{
?? ?int sum1,sum2,sum3,sum4,sum5,ch,i;
?? ?while(scanf("%d",&ch)!=EOF)
?? ?{
?? ??? ?sum1=sum2=sum3=sum4=sum5=0;
?? ??? ?if(ch==0)
?? ??? ?printf("change:%d\n",ch);
?? ??? ?else if(ch!=0)
?? ? ?{
?? ? ??? ?printf("change:%d\n",ch);
?? ??? ?for(i=0; ;i++)
?? ??? ?{
?? ??? ??? ?if(ch>=50)
?? ??? ??? ?{sum1++;ch=ch-50;}
?? ??? ??? ?else if(ch>=20)
?? ??? ??? ?{
?? ??? ??? ??? ?sum2++;ch=ch-20;
?? ??? ??? ?}
?? ??? ??? ?else if(ch>=10)
?? ??? ??? ?{
?? ??? ??? ??? ?sum5++;ch=ch-10;
?? ??? ??? ?}
?? ??? ??? ?else if(ch>=5)
?? ??? ??? ?{
?? ??? ??? ??? ?sum3++;ch=ch-5;
?? ??? ??? ?}
?? ??? ??? ?else if(ch>=1)
?? ??? ??? ?{
?? ??? ??? ??? ?sum4++;ch=ch-1;
?? ??? ??? ?}
?? ??? ? ? ?else if(ch==0)
?? ??? ? ? ?break;
?? ??? ?}
?? ??? ?if(sum1!=0)?? ?
?? ??? ?printf("50 yuan: %d\n",sum1);
?? ??? ?if(sum2!=0)
?? ??? ?printf("20 yuan: %d\n",sum2);
?? ??? ?if(sum5!=0)
?? ??? ?printf("10 yuan: %d\n",sum5);
?? ??? ?if(sum3!=0)
?? ??? ?printf("5 yuan: %d\n",sum3);
?? ??? ?if(sum4!=0)
?? ??? ?printf("1 yuan: %d\n",sum4);
?? ? ?}
?? ?}
?return 0;?? ?
}
總結
以上是生活随笔為你收集整理的Problem : 找钱问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python-Anaconda】jup
- 下一篇: 红包分配算法的实现