PDA

View Full Version : کمک در مورد یک برنامه



lxllxl
دوشنبه 07 تیر 1389, 19:12 عصر
سلام این برنامه ا است که پارتیشن ها یک عدد رو بر میگردونه


if(GetSum(number,n)==n && IsValidPartition(number,n)==1) Print(number,n);

}

return 0;
}
int Counter(int *number,int n)
{
int i=0;
int ans=0;

while(number[i]==n && i<n) i++;
if(i==n)
{
ans=0;
}
else
{
number[i]++;
for(int j=i-1;j>=0;j--)
number[j]=0;
ans=1;
}

return ans;
}
int GetSum(int *number,int n)
{
int sum=0;
for(int i=0;i<n;i++)
{
if(number[i]==0) break;
sum+=number[i];
}
return sum;
}
void Print(int *number,int n)
{
cout<<endl;
for(int i=0;i<n;i++)
{
if(number[i]==0) break;
cout<<number[i]<<" ";
}

}
int IsValidPartition(int *number,int n)
{
int ans=1;
for(int i=1;i<n;i++)
if(number[i-1]<number[i])
{
ans=0;
break;
}
return ans;


کار GetSum

و یه توضیح در مورد این خط توضیح در حد لالیگا باشه نمیخوام بدونم که کد چیکار میکنه میخوام بفهمم چه جور کار میکنه

int GetSum(int *number,int n)
{
int sum=0;
for(int i=0;i<n;i++)
{
if(number[i]==0) break;
sum+=number[i];
}
return sum;




کار IsValidPartition اینم برای اینکه نزاره پارتیشن تکراری چاپ بشه

میخوام بدونم که چه جور این کار میکنه یعنی خطارو یه توضیح بدید بفهم چگونه نمیزاره پارتیشن تکراری چاپ بشه



int IsValidPartition(int *number,int n)
{
int ans=1;
for(int i=1;i<n;i++)
if(number[i-1]<number[i])
{
ans=0;




عجرتون با خودم بعد با خدا کمک کنید ضروری ..............