PAT乙级1008
啊,很简单。
前面没有考虑M>N的情况,所以拿不全分,改了改就对了。
#include <iostream>
using namespace std;
int main()
{
int num,turn;
cin>>num>>turn;
int a[100];
int i,j;
for(i=0;i<num;i++)
{
cin>>a[i];
}
int count=0;
if(turn%num==0)
{
for(j=0;j<num-1;j++)
{
cout<<a[j]<<" ";
}
cout<<a[num-1];
}
else if(turn%num!=0 && turn>num)
{
while(turn>num)
{
turn-=num;
}
for(j=num-turn;j<num;j++)
{
cout<<a[j]<<" ";
}
for(j=0;j<num-1-turn;j++)
{
cout<<a[j]<<" ";
}
j=num-1-turn;
cout<<a[j];
}
else
{
for(j=num-turn;j<num;j++)
{
cout<<a[j]<<" ";
}
for(j=0;j<num-1-turn;j++)
{
cout<<a[j]<<" ";
}
j=num-1-turn;
cout<<a[j];
}
return 0;
}
写的太丑了,懒得改,争取以后把代码写好看一点!
1009,这道题乍一看,根本不想写,这不就是一个堆栈最最基本的操作么,然后本着加强印象的想法还是动笔写了写,果然还是发现了问题……
首先,堆栈忘了基本操作哈哈哈哈,又加强了一遍。
然后,姐妹,我不知道怎么判断string读取结束,char类型可以判断是否为'\n'来确定是否终止cin,可是string让我咋整???
然后各种CSDN查找,最后找到了一个简单一点的而且有效解决问题的!
char c;
string a;
while (cin >> a)
{
if ((c = getchar()) == '\n')//判断输入是否完毕
break;
……
原理咱也不懂,我猜就是因为把string转化为char一个个判断,符合条件的继续下面的操作,不符合条件的break,反正用过的都说好!
贴代码……有什么必要么(很简单……)
#include <iostream>
#include <stack>
#include <string>
#include <cstdlib>
using namespace std;
int main()
{
stack<string>org;
char c;
string a;
while (cin >> a)
{
if ((c = getchar()) == '\n')//判断输入是否完毕
{
org.push(a);
break;
}
else
org.push(a);
}
int l = org.size();
//cout << l << endl;
for (int i = 0; i < l; i++)
{
string now = org.top();
cout << now;
org.pop();
if (!org.empty())
{
cout << " ";
}
}
//system("PAUSE");
return 0;
}
嘻嘻,截止到现在,今日PAT已经完成,按照计划要写力扣,但是早上睡过头了,估计来不及了,背背单词,学学别的吧!