36.百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大中小马多少匹,共有多少组解?
//1、先确定变量关系,将问题分为3个维,用for语句嵌套搭建循环框架 //2、内层用判断语句确定满足题目的条件 //注意,设置一个变量用于计数 #include<iostream> using namespace std; int main() { int m=0; for(int i=1;i<=100;i++) { for(int j=1;j<=100;j++) { for(int k=1;k<=100;k++) { if((((i+j+k)==100))&&((3*i+2*j+0.5*k)==100)) { cout<<"大马:"<<i<<" 中马:"<<j<<" 小马:"<<k; m++; cout<<endl; } } } } cout<<"共有"<<m<<"组解"<<endl; return 0; }
引申类似问题:换零钱.把一元钱全兑换成硬币(1分2分5分),有多少种兑换方法
#include<iostream> using namespace std; int main() { int Y=100; int m=0; for(int i=1;i<=Y;i++) { for(int j=1;j<=Y;j++) { for(int k=1;k<=Y;k++) { if(i+2*j+5*k==Y) { cout<<"一分钱: "<<i<<" 两分钱: "<<j<<" 五分钱: "<<k; m++; cout<<endl; } } } } cout<<"一共有"<<m<<"种兑换方式"<<endl; return 0; }
posted on 2014-08-07 16:16 Ji_xiaowu 阅读(5523) 评论(0) 编辑 收藏 举报