#include
using namespace std;
int main()
{
int i,j,sum=0,a[50],t;
int k;
//i开始从一加到1000
for(i=1;i<1000;i++)
{
sum=0;
for(j=1;j<i;j++)//内层循环 控制j小于i 但j每次循环从1开始
{
if(i%j==0) //如果i能整除j 执行下面的循环
{
sum+=j; //j相当于因数 每个因数开始相加
a[k++]=j;
}
}
t=k;
if(sum==i)
{
cout<<i<<"->";
for(k=0;k<t;k++)
{
cout<<a[k];
if(k<t-1)
cout<<".";
}
cout<<endl;
}
k=0;
}
}
k++先计算在自增k++,相对应的还有++k是先自增在计算
自增操作,相当于 k = k+1; 每次执行都在原先的基础上 +1
k++是先赋值再加1,相应的还有一个++k这个是先加1再赋值
只需要记住 + 号在后面就是后加(先赋值后加);+ 号在前面就先加(先加后赋值);其实两者差别不大。
我只是觉得你应该先看看基础。。。
k++就是在用完k后进行k=k+1;
以下是汇编代码:
k++;
00CF618D mov eax,dword ptr [k]
00CF6190 add eax,1
00CF6193 mov dword ptr [k],eax
++k;
00CF6196 mov eax,dword ptr [k]
00CF6199 add eax,1
00CF619C mov dword ptr [k],eax
这是某种编译器的显示形式。
对于表达式来说:k++代表k自加之前的值,而++k就是k本身。