120 - Stacks of Flapjacks

题目看了半天......英语啊!!!

好久没做题...循环输入数字都搞了半天...罪过啊!!!

还是C方便一点...其实C++应该更方便的...C++得再看看!!!

#include <iostream>
#include <cstdio> using namespace std; /*翻转*/
void myReverse(int arr[],int s,int e)
{
while (s<e)
{
int temp=arr[s];
arr[s]=arr[e];
arr[e]=temp;
s++;
e--;
}
} int main(void)
{
int temp;
while (scanf("%d",&temp)!=EOF)
{
int myArr[];
myArr[]=temp;
int myCount=; while (getchar()!='\n')
{
cin>>myArr[myCount++];
} /*输出原始的*/
for (int i=;i<myCount-;i++)
{
cout<<myArr[i]<<" ";
}
cout<<myArr[myCount-]<<endl; for (int i=myCount-;i>=;i--) //针对此次最大的数
{
/*先找到此次最大数的位置*/
int thisMaxIndex=i; //注意记录的是下标
for (int j=i-;j>=;j--)
{
if (myArr[j]>myArr[thisMaxIndex])
{
thisMaxIndex=j;
}
} if(thisMaxIndex==i) //此次的最后一个已经是最大的了,不要操作
{
continue;
}
else if(thisMaxIndex==) //最大的第一个数,
{
cout<<(myCount-i)<<" "; //直接从后面翻一下,注意输出
myReverse(myArr,,i);
}
else
{
cout<<(myCount-thisMaxIndex)<<" ";
myReverse(myArr,,thisMaxIndex);
i++; //再继续此次循环
}
} cout<<"0\n"; //最后输出0;
}
return ;
}

总结:

1.while (scanf("%d",&temp)!=EOF)的循环输入判读

2.while (getchar()!='\n')  {  cin>>myArr[myCount++];} 看输入,读了一个数字之后紧接着要么是一个空格,要么是结尾的换行符,这里这代码漂亮!空格读了就不要了然后直接读数字,是换行就退出了循环,紧密结合了实际!

3.每次循环的处理,最外层是由后向前,保证处理过的都是有序的大的数.每次循环,要是不合要求再 i-- ,即再来这次循环!

UVaOJ 120 - Stacks of Flapjacks的更多相关文章

  1. Uva 120 - Stacks of Flapjacks(构造法)

    UVA - 120  Stacks of Flapjacks Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld &a ...

  2. uva 120 stacks of flapjacks ——yhx

     Stacks of Flapjacks  Background Stacks and Queues are often considered the bread and butter of data ...

  3. (白书训练计划)UVa 120 Stacks of Flapjacks(构造法)

    题目地址:UVa 120 水题. 从最大的開始移,每次都把大的先翻到最上面,再翻到以下. 代码例如以下: #include <iostream> #include <cstdio&g ...

  4. UVa 120 Stacks of Flapjacks【构造法】

    题意:给出n张煎饼,从上到下输入,每张煎饼上面都有一个数字,厨师每次可以选择第k张煎饼,进行翻转操作,设计一种方法使得所有煎饼按照从小到大排序(最上面的煎饼最小) 首先是这个翻转的操作,如下图 如图所 ...

  5. UVA 120 Stacks of Flapjacks

    每次从最底部开始处理,如果不是最大值,则把最大值翻到底部.这就是最优解.原理自己模拟一下就好... 注意半径不是从1开始.数据处理要仔细. #include <iostream> #inc ...

  6. UVA - 120 Stacks of Flapjacks(煎饼)

    题意:一叠煎饼,每个煎饼都有一个数字,每次可以选择一个数k,把从锅底开始数第k张以及其上面的煎饼全部翻过来,最终使煎饼有序排列(锅顶最小,锅底最大). 分析:依次从锅底向上,优先排数字最大的煎饼.每次 ...

  7. uva Stacks of Flapjacks

                                                     Stacks of Flapjacks  题目链接:Click Here~ 题目描写叙述:     ...

  8. 【思维】Stacks of Flapjacks

    [UVa120] Stacks of Flapjacks 算法入门经典第8章8-1 (P236) 题目大意:有一个序列,可以翻转[1,k],构造一种方案使得序列升序排列. 试题分析:从插入排序即可找到 ...

  9. Stacks of Flapjacks(栈)

     Stacks of Flapjacks  Background Stacks and Queues are often considered the bread and butter of data ...

随机推荐

  1. C语言调用Lua函数

    记得上学时,初中英文课本中,上网叫做surfing the internet,中文叫网上冲浪. 那个时期,人们常常称互联网为赛博空间.现在工作了,大量的零碎时间用于上微博,知乎,QQ.这些碎片化的阅读 ...

  2. iOS开发——实用篇&提高iOS开发效率的方法和工具

    提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时 ...

  3. php的分表分库类

    <?php include 'config.php'; class Model{ //用户名 protected $user; //密码 protected $pwd; //主机 protect ...

  4. requestFileSystem is undefined

    使用phonegap 3时,用File API,不应该用cordova plugin add org.apache.cordova.file等添加File API Plugin. 要用: phoneg ...

  5. qt 获取系统磁盘空间大小

    quint64 getDiskFreeSpace(QString driver) { LPCWSTR lpcwstrDriver=(LPCWSTR)driver.utf16(); ULARGE_INT ...

  6. RTB广告展示分步说明

    原文:http://contest.ipinyou.com/cn/manual.shtml RTB (Real Time Bidding, 实时竞价) 是近年来计算广告领域最激动人心的进展之一. 它增 ...

  7. Advice on improving your programming skills

    Programming is cool. But behind the scenes it's also difficult for many people. Many people are defe ...

  8. Android自定义View,高仿QQ音乐歌词滚动控件!

    最近在以QQ音乐为样板做一个手机音乐播放器,源码下篇博文放出.今天我想聊的是这个QQ音乐播放器中歌词显示控件的问题,和小伙伴们一起来探讨怎么实现这个歌词滚动的效果.OK,废话不多说,先来看看效果图: ...

  9. C++/CLR Sqlite初探

        error C2491: "acosh": 不允许 dllimport 函数 的定义     asinh": 不允许 dllimport 函数 的定义     a ...

  10. Java SE ---关系运算符

    java里的关系运算符有这么几种:大于(>).小于(<).等于(==).不等于(!=).大于等于(>=).小于等于(<=), 关系运算的结果是个boolean值,关系式成立为t ...