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. iOS开发——Swift篇&文件,文件夹操作

    文件,文件夹操作   ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作:   1,遍 ...

  2. 获取设备上全部系统app信息

    在获取android设备的全部程序信息一文中介绍了获取手机上全部app信息的方法,以下介绍过滤掉系统app的方法: MainActivity: package com.home.getsysapp; ...

  3. Online Schema Upgrade in MySQL Galera Cluster using TOI Method

    http://severalnines.com/blog/online-schema-upgrade-mysql-galera-cluster-using-toi-method     As a fo ...

  4. jq宽高 详解

    alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(docum ...

  5. MSSQL系统表常用操作

    1:获取当前数据库中的所有用户表 select Name from sysobjects where xtype='u' and status>=0 2:获取某一个表的所有字段 select n ...

  6. autoscan; aclocal; autoconf; automake --add-missing; ./configure; make

    1.autoscan 在源码目录下执行autoscan,生成configure.scan,重命名为configure.in或者configure.ac,然后编辑文件内容: ============== ...

  7. Lamp下安装memcached

    1.先安装 libevent,再安装 Memcached主程序 # tar xf libevent-2.0.21-stable.tar.gz # cd libevent-2.0.21-stable # ...

  8. Java中String类的format方法使用总结

    可参考: http://www.cnblogs.com/fsjohnhuang/p/4094777.html http://kgd1120.iteye.com/blog/1293633 String类 ...

  9. [未完成]关于Java网络编程总结

    网络的七层结构: 第一层:物理层,网线. 第二层: 数据链路层,交换机.交换机有IP地址.这一层的数据叫做帧 第三层:网络层,数据包方向的定义,路由器.现在也有具有路由功能的交换机.主要将从下层接收到 ...

  10. Centos搭建nginx环境,编译,添加服务,开机启动。

    首先安装所需的安装库,yum -y install gcc gcc-c++ autoconf libtool* openssl openssl-devel 编译的时候,若有提示错误,提示缺少某个库,y ...