标签:
//自己看到这个问题后的解法
#include<iostream>
using namespace std;
typedef int status;
//将一个数组p的坐标0到i的元素调个头
status diao_tou(int *p,int i)
{
if(i==0)
return 1;
for(int j=0;j<=((i-1)/2);j++)
{
int temp;
temp=p[i-j];
p[i-j]=p[j];
p[j]=temp;
}
return 1;
}
int main()
{
//输入1到n个不同的数,从前到后依次为从上到下的各个饼的大小,不同的.
int max_size;
cin>>max_size;//输入的数字为max_size个
int *ptr,i=0;
ptr=(int *)malloc(max_size*sizeof(int));//将这些数字都存放在数组中
while (1)
{
cin>>ptr[i];
i++;
if(i==max_size)
break;
}
for(int i=0;i<max_size;++i)
cout<<ptr[i]<<‘ ‘;
cout<<endl;
int cout_time=0;//记次数的变量
for(int k=max_size-1;k!=0;--k)
{
if(ptr[k]==k)
continue;
if(ptr[0]==k)
{
diao_tou(ptr,k);
cout_time++;
}
else
{
for(int j=1;j!=k;j++)
if(ptr[j]==k)
{
diao_tou(ptr,j);
diao_tou(ptr,k);
cout_time++;
cout_time++;
}
}
}
cout<<"cout_time="<<cout_time<<endl;
system("pause");
return 1;
}
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4333889.html