Nhờ giải thích ý nghĩa câu lệnh a[dem++]

Cho em hỏi phần a[dem++] có nghĩa là sao ạ bài này em chưa hiểu cho lắm.

#include<bits/stdc++.h>
using namespace std;
long long i,dem,a[1000000];
void pts(int n)
{
    i=2;
    dem=0;
    while (n > 1)
    {
        if (n % i == 0)
        {
            n = n / i;
            a[dem++] = i;
        }
        else
        {
            i++;
        }
    }
    if (dem == 0)
    {
        a[dem++] = n;
    }
    for (i = 0; i < dem - 1; i++)
    {
        cout<<a[i]<<"*";
    }
    cout<<a[dem-1];
}
long long n;
int main()
{
    cin >> n;
    pts(n);
    return 0;
}
1 Like

Khá chắc nó là dạng sugar của cái này:

dem++
a[dem]

dem++ có nghĩa là tăng giá trị của dem thêm 1 rồi trả về giá trị cũ. Ví dụ:

int i = 0;
std::cout << i++; //i tăng lên 1 nhưng vẫn in ra 0
std::cout << i; //giờ mới in 1
3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?