如何用1角、2角和5角的硬幣湊出10元以下的金額

第一種方法:接力break

# include<stdio.h>

int main()
{
   int x=2;
   int one,two,five;
   int exit=0;
   for(one=1;one<x*10;one++){
       for(two=1;two<x*10/2;two++){
           for(five=1;five<x*10/5;five++){
               if(one+two*2+five*5==20){
                   printf("可以用%d個1角%d個2角%d個5角湊出%d元\n",one,two,five,x);
                   exit=1;
                   break;
               }
           }
           if(exit) break;
       }
       if(exit) break;
   }
    return 0;
}

第二種方法:goto 標號

# include<stdio.h>

int main()
{
   int x=2;
   int one,two,five;
   int exit=0;
   for(one=1;one<x*10;one++){
       for(two=1;two<x*10/2;two++){
           for(five=1;five<x*10/5;five++){
               if(one+two*2+five*5==20){
                   printf("可以用%d個1角%d個2角%d個5角湊出%d元\n",one,two,five,x);
                   goto out;
               }
           }
          
       }
      
   }
out:
    return 0;
}

注:goto儘量只在從多重循環的最內層跳到最外層時使用 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章