这个怎么办?大神教教(标签-c++|关键词-分支结构)

c++:
1030: 【分支结构】买东西
[题目描述]
用N元购买A物品价格为6元、B物品价格为5元、C物品价格为4元三种物品。

设计一程序,买尽量多的物品,且不剩余钱。

输入
输入N(表示总钱数)n>7

输出
输出A,B,C物品分别多少个?(格式见样例)

样例输入
40
样例输出
A=0 B=0 C=10

贪婪算法
首先应该以先购买C物品,就是钱数N%4,得到余数,余数可能的结果是0,1,2,3
如果为0则直接购买C物品N/4件
如果为1则购买C物品N/4-1件,B物品1件
如果为2则购买C物品N/4-2件,B物品2件、或者C N/4-1件A 1件
如果为3则购买C物品N/4-3件,B物品3件 、或者C N/4-2件A 1 件 B 1 件


#include <iostream>
using namespace std;
int main()
{
    int x,y,z,sum,f=1;
    cin>>sum;
    if(sum<4) f=0;
    if(sum%4==0) //刚好整除的情况 
    {
        x=0,y=0,z=sum/4;
    }
    else if(sum%4==1)//除于4后余1,然后可以少买4元物品,拿钱去买5元的物品 
    {
        x=0;y=1;z=sum/4-1;
    }
    else if(sum%4==2)//除于4后余2,然后可以少买4元物品,拿钱去买6元的物品 
    {
        x=1;y=0;z=sum/4-1;
    }
    else if(sum%4==3)//除于4后余3,然后可以少买两4元物品,
        //8+3=有11元拿钱去买5元和6元的物品 ,
        //如果sum为7元刚好是 除于4后余3这种情况,就肯定有剩余买不了 
    {
        if(sum==7) f=0;
        x=1;y=1;z=sum/4-2;
    }
    //最后再用标记的f判断输出的内容 
    if(f) printf("A=%d B=%d C=%d\n",x,y,z);
    else 
        printf("所有方案都有生育,无法解决!\n");
    system("pause");
    return 0; 
}

img