问题:啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒喝饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。
这道题可以直接用两层for循环,一层代表啤酒数量,一层代表饮料数量,都从0循环到82,不过代码还可以优化,如果82.3元全都用来买饮料,最多可以买43罐,如果82.3元全都用来买啤酒,最多可以买35罐,(设i为饮料的数量,j为啤酒的数量) 所以第一层for循环从0到43,第二层for循环从0到35,题中又说“他买的啤酒比饮料的数量少”,所以第二层循环可以控制到从0到i。
#include<stdio.h>
#include<math.h>
int main()
{
int i,j; //j为饮料,i为啤酒
for(i=0;i<=43;i++)
{
for(j=0;j<=i;j++)
{
if((1.9*i+2.3*j)==82.3)
printf("%d\n",j);
}
}
return 0;
}