C经典之13-Asking的实时监听---ShinePans

题目描述

有n张卡片,分别标有数字1~n。有一天Silence把他们按某种序列排好,然后从第一张开始取出一张,再拿一张放到最后面,再取出一张,再拿出一张放到最后面...知道n张卡片全部取走。把取出的卡片按取出的顺序排好,正好是1,2,3,4,....,n。

现在,告诉你n,Silence希望你帮他计算原来的序列的逆序数。

例如,n=4时,原来的序列应该是1,3,2,4。这样,先取出卡片1,再把卡片3放到最后面,序列变成了2,4,3。再把2取出来,4放到后面,序列变成了3,4。再把3取出来,4放最后面,再把4取出来,这样取出卡片的顺序就是1,2,3,4了。那么原来序列(1,3,2,4)的逆序数是1.那么答案就是1啦。

输入

输入不超过1000个样例,每个样例一行,一个整数n(1 <= n <= 10^9)。

输出

每个样例输出一行,一个整数,为原来序列的逆序数

样例输入

4
99

样例输出

1
1631

Source

WW

#include<stdio.h>
int main()
{
    __int64 sum,n,k;
    while(scanf("%I64d",&n)>0)
    {
        sum=0;
        while(n>2)
        {
            k=(n+1)/2-1;
            sum+=(k+1)*k/2;//求和公式
            n=n-(n+1)/2;

            if(n%2) n=n+1;//变成偶数,如果n为奇则当前这回只取出奇数个数
        }
        printf("%I64d\n",sum);
    }
}

C经典之13-Asking的实时监听---ShinePans

时间: 2024-08-01 10:32:05

C经典之13-Asking的实时监听---ShinePans的相关文章

js/jquery 实时监听输入框值变化的完美方案:oninput &amp; onpropertychange

本文转载于 http://blog.163.com/lgh_2002/blog/static/44017526201341511112874/ Jquery绑定事件(bind和live的区别) js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange 2013-05-15 11:01:12|  分类: jquery/javascrip |

js 实时监听input中值变化

js 实时监听input中值变化 分类: Javascript2014-05-11 11:13 849人阅读 评论(0) 收藏 举报 [html] view plaincopyprint? <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>RunJS

实时监听input输入

oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:password 和 input:search 这几个元素通过用户界面发生的内容变化非常有用,在内容修改后立即被触发,不像 onchange 事件需要失去焦点才触发.oninput 事件在主流浏览器的兼容情况如下: 从上面表格可以看出,oninput 事件在 IE9 以下版本不支持,需要使用 IE 特有的 onpropertychange 事件替代,这个事件在用户界面改变或者使用脚本直接

Rsync+Inotify实时监听备份

说明,下面的inotify是建立在rsync的配置过程 大前提是rsync daemon 配置成功,rsync配置看上一遍博文,在客户端可以推拉数据,然后才能配置inotify服务----inotify是在客户端安装,监听需要备份的目录,然后推送到服务端 查看当前系统是否支持inotify [[email protected] bier]# uname -r 2.6.32-431.el6.i686 [[email protected] bier]# ls -l /proc/sys/fs/inot

移动端用js与jquery实时监听输入框值的改动

背景: 在一次移动端H5开发中,需要监听输入框值的实时变动. onchange事件肯定抛弃,因为只能失去焦点才触发. 而keyPress在Android可以触发,iOS不可以. 又不想用Android和iOS都可以触发的keyDown和keyUp. 于是,百度出了新东西:oninput![需要配合propertychange,兼容 IE9 以下版本] 用法: JS: if(isIE) { document.getElementById("input").onpropertychange

socket + pcntl_fork 实现客户端请求,服务器实时监听返回处理 消息推送

<?php /* socket链接整个过程 1,socket_create 第一个参数指定应用程序使用的通信协议的协议族,对于TCP/IP协议族,该参数置AF_INET: 第二个参数指定要创建的套接字类型,流套接字类型为SOCK_STREAM.数据报套接字类型为SOCK_DGRAM.原始套接字SOCK_RAW(WinSock接口并不适用某种特定的协议去封装它,而是由程序自行处理数据包以及协议首部): 第三个参数指定应用程序所使用的通信协议.此参数可以指定单个协议系列中的不同传输协议.在Inter

Android开发之使用BroadcastReceiver实时监听电量(源代码分享)

Android系统中实时的监听手机电量以及开机启动功能都是通过BroadcastReceiver组件实现的.我们可以动态注册这个类的一个实例通过Context.registerReceiver()方法或者静态注册,通过<Receiver>标记在androidmanifest . xml.注意:如果我们注册一个接收器在Activity.onResume()实现,我们应该注销Activity在Activity生命周期的onPause方法中.(这将减少不必要的系统开销).切记不能注销Activity

oninput和onpropertychange实时监听输入框值的变化

传统监听输入框的做法就是使用keyup.keydown.keypress,或者change事件来实现,但keyup.keydown.keypress事件是只要完成击键事件后就触发,不考虑输入框的值是否变化,也监听不了使用鼠标右键[剪贴]和[粘贴]这些操作,更监听不了使用JS动态改变值的变化.而change事件必须是焦点离开输入框后才触发,并不能实时监听.所以这几个事件来监听输入框值变化并不完美.ie浏览器(ie6-8)可以直接使用onpropertychange事件来实时监听(包括JS动态改变值

关于实时监听输入框的值变化

实时监听文本框值变化是非常常见的功能,通常最简单的办法就是用keyup,keydown来实现,但是这种方法有两个问题,一个是当直接复制粘贴的时候没法监听到事件,另外一个问题是在移动端,使用删除键删除输入时候也无法监听到! 解决办法: 1.使用onchange事件 onchange事件是文本框内容改变并失去焦点的时候才触发. 2.比较完美的解决办法:oninput和onproper oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:pas