标签:
输入10个整形数,输入一个整形m,将整形数m个数字前置,如 1 2 3 4 5 6 7 8 9 10,m=3,输出 8 9 10 1 2 3 4 5 6 7
解题思路:
使用两个堆栈即可。代码如下:
#include <iostream>
#include<stack>
using namespace std;
void main()
{
int a[10]={0};
for (int i=0;i<10;i++)
{
cin>>a[i];
}
int num;
cin>>num;
num%=10;
stack<int> sta1,sta2;
for (int i=0;i<10;i++)
{
if (i<(10-num))
{
sta1.push(a[i]);
}
else
sta2.push(a[i]);
}
for (int i=9;i>=0;i--)
{
while (!sta1.empty())
{
int temp=sta1.top();
a[i]=temp;
i--;
sta1.pop();
}
while (!sta2.empty())
{
int temp=sta2.top();
a[i]=temp;
i--;
sta2.pop();
}
}
for (int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
}
标签:
原文地址:http://blog.csdn.net/sinat_24520925/article/details/45728069