m0_73928344 2022-11-02 21:51 采纳率: 70%
浏览 63
已结题

c++问题求答疑解惑

问题一:下面的代码有什么问题

img

img

img

#include <iostream>
using namespace std;

int main()
{
    int x;
    cin >> x;
    int a = 0;
    a += x / 33;
    x = x % 33;
    a += x / 23;
    x = x % 23;
    a += x / 16;
    x = x % 16;
    a += x / 5;
    x = x % 5;
    a += x ;
    
    cout << a <<' ';


    int y = x;
    int b = 0;
    while(y > 0)
    {
        if(y>=1 && y<5)
        {
            b ++;
            y -= 1;
            continue;
        }
        else if(y>=5 && y<16)
        {
            b ++;
            y -= 5;
            continue;
        }
        else if(y>=16 && y<23)
        {
            b ++;
            y -= 16;
            continue;
        }
        else if(y>=23 && y<33)
        {
            b ++;
            y -= 23;
            continue;
        }
        else
        {
            b ++;
            y -= 33;
            continue;
        }
    }
    cout << b ;



    return 0;
}

问题二:下面的代码有什么问题

img

img

#include <iostream>
using namespace std;

int main()
{
    int n,p;
    cin >> n >> p;
    int m = 1;
    for(int i=1;i<=n;i++)
    {
        m *= i;
    }
    int a = 0;
    while(m % p == 0)
    {
        m /= p;
        a++;
    }
    cout << a;
    return 0;
}

问题三:如何写

img

问题四:如何写

img

  • 写回答

2条回答 默认 最新

  • 白驹_过隙 算法领域新星创作者 2022-11-10 08:40
    关注

    穷举法要多层循环才行

    img

    #include <iostream>
    using namespace std;
     
    int main() 
    {
        int n;
        cin >> n;
        int res1=99, res2=0;
        int i, j,k,e,u;
     
        for (i = 0; i < 4; i++)
            for (j = 0; j < (n - 33 * i) / 23 + 1; j++)
                for (k = 0; k < (n - 33 * i - 23 * j) / 16 + 1; k++)
                    for (e = 0; e < (n - 33 * i - 23 * j - 16 * k)/5 + 1; e++)
                        for (u = 0; u < n - 33 * i - 23 * j - 16 * k - 5 * e + 1; u++)
                            if (33 * i + 23 * j + 16 * k + 5 * e + u == n)
                                if (i + j + k + e + u < res1)
                                    res1 = i + j + k + e + u;
     
        res2 += n / 33;
        n = n % 33;
        res2 += n / 23;
        n = n % 23;
        res2 += n / 16;
        n = n % 16;
        res2 += n / 5;
        n = n % 5;
        res2 += n;
        cout << res1 <<" "<<res2<< endl;
     
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月22日
  • 已采纳回答 11月14日
  • 修改了问题 11月9日
  • 修改了问题 11月9日
  • 展开全部

悬赏问题

  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图