2401_83642756 2024-07-23 10:31 采纳率: 50%
浏览 7
已结题

问一下,也关注老长时间了

古文波是我2401_83642756也是马恺嵘哦我想问一下那个求1~n中每个数的因子有哪些?怎么做我这代码老是错帮我看一下 TANKS
FOR YOU..


```c++
#include<iostream>
using namespace std;
int sum=0;
int main() {
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=n;j>=1;j--)
        {
            if(j%i==0)
            {
                sum=j/i;
                cout<<i<<":"<<j<<sum<<endl;
            }
        }
    }
    return 0;
}

```

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-23 10:31
    关注

    引自免费微信小程序:皆我百晓生

    你的代码有几个问题需要注意:

    首先,你试图寻找一个数(从输入n开始)的所有因子,并计算这些因子的比例(即这个数除以因子)。但是你的代码对于因子的定义存在问题。你的代码在检查 j % i == 0 这个条件,然后在满足条件时将 j/i 设为 sum,这并不是找到因子的正确方式。你需要找到的是每个数i的所有因子,而不是从n开始向下遍历。正确的做法应该是从当前数i开始向下遍历可能的因子,并在找到因子时打印出来。其次,打印格式也存在问题,你应该只打印当前数i以及它的因子。

    这是一个修正后的代码示例:

    #include<iostream>
    using namespace std;
    
    int main() {
        int n;
        cin >> n; // 输入一个数n
        for (int i = 1; i <= n; i++) { // 从1到n遍历每个数
            cout << i << ": "; // 打印当前数i
            for (int j = 1; j <= i; j++) { // 从1开始遍历可能的因子到当前数i
                if (i % j == 0) { // 如果j是i的因子(即i能被j整除)
                    cout << j << " "; // 打印因子j以及它和它的乘积构成的总值i。不过在此问题下不需要输出乘积信息。这是仅针对你所提供的信息,给出的相应处理方式。实际应用中根据需求而定。
                }
            }
            cout << endl; // 每个数的因子打印完毕后换行
        }
        return 0;
    }
    

    此代码会从输入的数n开始遍历每个数(从1到n),对于每个数都会尝试寻找它的所有因子并打印出来。这样你就可以得到每个数的所有因子了。注意这个代码没有包括额外的操作(比如将每个数的所有因子之和作为额外的输出),如果有这样的需求请详细说明你的需求,我可以帮你进行代码的进一步修改和补充。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月31日
  • 已采纳回答 7月23日
  • 创建了问题 7月23日

悬赏问题

  • ¥15 无源定位系统的时差估计误差标准差
  • ¥15 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题