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;
عجرتون با خودم بعد با خدا کمک کنید ضروری ..............
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;
عجرتون با خودم بعد با خدا کمک کنید ضروری ..............