卡在获得数字的倍数上

stuck at getting multiples of number

本文关键字:数字      更新时间:2023-10-16

我试图找到range以下所有nums倍数的总和,但我对循环有一些问题

int sumOfNumberMuliplesOf(int range, vector<int> nums) {
    int sum;
    vector<int> num;
    // get the number and its multiples
    for (int x : nums) {
        if (x != 0) {
        for (int i = x; x < range; i+= x) {
            num.push_back(x);
            cout<< x << "  "; // stuck on 3  .... PROBLEM IN THIS LOOP
        }
    }
}
/// check for duplicated numbers
        for (int x = 0;x < num.size();x++) {
            for (int  y = x+1; y < num.size(); y++) {
                if (num[x] == num[y]) {
                num[y] = 0;
                }
            }
        }
// sum the numbers
        for (int x = 0; x< num.size(); x++) {
            sum+=num[x];
        }
        return sum;
}
int main() {
    vector<int> num;
    num.push_back(3);
    num.push_back(5);
    cout << sumOfNumberMuliplesOf(1000,num);
    return 0;
    }

为什么整数"i"停留在"3"上而不是增加 x?

for (int i = x; x < range; i+= x) {
    num.push_back(x);
    cout<< x << "  "; // stuck on 3  .... PROBLEM IN THIS LOOP
}

该循环中存在很多问题,因为您要更改的唯一变量是i,但是您正在检查,添加到向量并打印的变量是不变x