标签:style blog class code c java
逆序数 | ||
Accepted : 10 | Submit : 27 | |
Time Limit : 1000 MS | Memory Limit : 65536 KB |
题目描述有n张卡片,分别标有数字1~n。有一天Silence把他们按某种序列排好,然后从第一张开始取出一张,再拿一张放到最后面,再取出一张,再拿出一张放到最后面...知道n张卡片全部取走。把取出的卡片按取出的顺序排好,正好是1,2,3,4,....,n。 输入输入不超过1000个样例,每个样例一行,一个整数n(1 <= n <= 10^9)。 输出每个样例输出一行,一个整数,为原来序列的逆序数 样例输入4 99 样例输出1 1631 |
1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring> 4 #include<cstdlib> 5 using namespace std; 6 typedef long long LL; 7 8 int main() 9 { 10 LL n; 11 while(scanf("%I64d",&n)>0) 12 { 13 LL sum=0; 14 while(n) 15 { 16 if((n&1)==1) n++; 17 if(n==2) break; 18 n=n/2; 19 sum=sum+n*(n-1)/2; 20 } 21 printf("%I64d\n",sum); 22 } 23 return 0; 24 }
标签:style blog class code c java
原文地址:http://www.cnblogs.com/tom987690183/p/3735063.html