求1+2+……+n(位运算)
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
我发现网上的做法都很神,各种理由编译的巧妙办法,就能间接地利用循环来解决,构造函数 递归什么的。想了好久,脑子里只有位运算。。。终于折腾出来了。
代码真傻,我真的没用循环。。。
#include <stdio.h>
#include <iostream>
using namespace std;
#define LL long long
int p[] = {,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,
,};
int fun(int x)
{
int sum;
sum = x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
sum += x<<;
return sum;
}
int main()
{
int n;
LL ans; while(cin>>n)
{
ans = (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans += (n<<)&fun(((n+)&p[])>>);
ans = ans>>;
cout<<ans<<endl;
}
return ;
}
求1+2+……+n(位运算)的更多相关文章
- 求幂&&快速幂&&位运算
1.普通的求幂方法: 时间复杂度为O(n),对于比较大的数在1s限时内可能会TLE int pow(int base,int p){ int ans=1; for(int i=1;i<=p;i+ ...
- 求集合中选一个数与当前值进行位运算的max
求集合中选一个数与当前值进行位运算的max 这是一个听来的神仙东西. 先确定一下值域把,大概\(2^{16}\),再大点也可以,但是这里就只是写写,所以无所谓啦. 我们先看看如果暴力求怎么做,位运算需 ...
- C语言学习笔记之位运算求余
我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注意:该方法只对除数是2的N次方幂时才有效. ...
- PHP:第一章——按位运算和求余运算(判断奇偶数)
<?php //按位运算:与1按位运算等于0,输出偶数.如果等于1,输出奇数 //输出偶数: for($i=0;$i<10;$i++){ if(($i & 1)==0){ echo ...
- [note]一类位运算求最值问题
[note]一类位运算求最值问题 给定一些数,让你从中选出两个数a,b,每次询问下列中的一个 1.a and b的最大值 2.a xor b的最大值 3.a or b的最大值 神仙们都是FWT,小蒟蒻 ...
- c语言小技巧:C语言学习笔记之位运算求余
我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不 允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注 意:该方法只对除数是2的N次方幂时才有效 ...
- LeetCode通关:求次数有妙招,位运算三连
分门别类刷算法,坚持,进步! 刷题路线参考: https://github.com/chefyuan/algorithm-base 大家好,我是刷题困难户老三,这一节我们来刷几道很有意思的求次数问题, ...
- 通过位运算求两个数的和(求解leetcode:371. Sum of Two Integers)
昨天在leetcode做题的时候做到了371,原题是这样的: 371. Sum of Two Integers Calculate the sum of two integers a and b, b ...
- 用位运算实现四则运算之加减乘除(用位运算求一个数的1/3) via Hackbuteer1
转自:http://blog.csdn.net/hackbuteer1/article/details/7390093 ^: 按位异或:&:按位与: | :按位或 计算机系统中,数值一律用补码 ...
随机推荐
- 在多台服务器上简单实现Redis的数据主从复制(3)(转载)
转载地址:http://www.cnblogs.com/liping13599168/archive/2011/04/14/2016226.html Redis的主从复制功能非常强大,一个master ...
- OCJP(1Z0-851) 模拟题分析(二)over
Exam : 1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam 以下分析全都是我自己分析或者参考网上的,定有 ...
- 【openGL】指定着色模型
#include "stdafx.h" #include <GL/glut.h> #include <stdlib.h> #include <math ...
- 扩展LV
LVM最大的特性就是可以弹性调整磁盘容量下面扩展一个已经存在的LV [root@ol6--rac1 mnt]# lvdisplay --- Logical volume --- LV Path /de ...
- HDU3434 Sequence Adjustment
题意:给你含有n个数的序列,每次你可以选一个子序列将上面所有的数字加1或者减1,目标是把所有数字变成相同的,问最少步数,和那个相同的数字有多少种可能. 将原序列转化为差分序列,即a[2] - a[1] ...
- Visual Studio 2015将在7月20号RTM
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:用了3个多月的VS 2015终于要迎来RTM了,不过感觉有点淡淡的忧伤(为什么呢?请看 ...
- TCP通讯程序设计
TCP通讯程序设计 这里主要包含客户机和服务器的编程. 一.编程模型函数化 使用函数说明:socket的理解 服务器: 创建socket使用函数----->socket 绑定地址使用函数---- ...
- Windows系统上安装多个版本jdk,修改环境变量不生效
本机已经安装了jdk1.6,而比较早期的项目需要依赖jdk1.5,于是同时在本机安装了jdk1.5和jdk1.6. 安装jdk1.5前,执行 java -version 得到java version ...
- 在Salesforce中调用外部系统所提供的的Web Service
这里需要提供外部service所对应的WSDL文件(Salesforce只支持从本地上传),并且提供的WSDL文件有如下两点要求: 1):wsdl 文件只能有一个binding,Salesforce是 ...
- loj 1406(状态压缩)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1406 思路:首先可以预处理出在每个顶点的状态的合法状态vis[u][state], 然 ...