求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. 求幂&&快速幂&&位运算

    1.普通的求幂方法: 时间复杂度为O(n),对于比较大的数在1s限时内可能会TLE int pow(int base,int p){ int ans=1; for(int i=1;i<=p;i+ ...

  2. 求集合中选一个数与当前值进行位运算的max

    求集合中选一个数与当前值进行位运算的max 这是一个听来的神仙东西. 先确定一下值域把,大概\(2^{16}\),再大点也可以,但是这里就只是写写,所以无所谓啦. 我们先看看如果暴力求怎么做,位运算需 ...

  3. C语言学习笔记之位运算求余

    我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注意:该方法只对除数是2的N次方幂时才有效. ...

  4. PHP:第一章——按位运算和求余运算(判断奇偶数)

    <?php //按位运算:与1按位运算等于0,输出偶数.如果等于1,输出奇数 //输出偶数: for($i=0;$i<10;$i++){ if(($i & 1)==0){ echo ...

  5. [note]一类位运算求最值问题

    [note]一类位运算求最值问题 给定一些数,让你从中选出两个数a,b,每次询问下列中的一个 1.a and b的最大值 2.a xor b的最大值 3.a or b的最大值 神仙们都是FWT,小蒟蒻 ...

  6. c语言小技巧:C语言学习笔记之位运算求余

    我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不 允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注 意:该方法只对除数是2的N次方幂时才有效 ...

  7. LeetCode通关:求次数有妙招,位运算三连

    分门别类刷算法,坚持,进步! 刷题路线参考: https://github.com/chefyuan/algorithm-base 大家好,我是刷题困难户老三,这一节我们来刷几道很有意思的求次数问题, ...

  8. 通过位运算求两个数的和(求解leetcode:371. Sum of Two Integers)

    昨天在leetcode做题的时候做到了371,原题是这样的: 371. Sum of Two Integers Calculate the sum of two integers a and b, b ...

  9. 用位运算实现四则运算之加减乘除(用位运算求一个数的1/3) via Hackbuteer1

    转自:http://blog.csdn.net/hackbuteer1/article/details/7390093 ^: 按位异或:&:按位与: | :按位或 计算机系统中,数值一律用补码 ...

随机推荐

  1. Counterfeit Dollar -----判断12枚钱币中的一个假币

     Counterfeit Dollar Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u ...

  2. .Net Ioc Unity

    Unity 的接口IUnityContainer public interface IUnityContainer : IDisposable IUnityContainer RegisterType ...

  3. Java Hour 65 [译] Java 6.0 说明

    原文可爱的地址: http://www.javabeat.net/introduction-to-java-6-0-new-features-part-i/ 该文字2007年的,现在估计老掉牙了,但是 ...

  4. hdu 4031 2011成都赛区网络赛A题 线段树 ***

    就是不知道时间该怎么处理,想了好久,看了别人的题解发现原来是暴力,暴力也很巧妙啊,想不出来的那种  -_-! #include<cstdio> #include<iostream&g ...

  5. HR外包系统 - 账款

    01 账款-服务费,注意多币种以及收款对象和联系人的设置 02 代收代付,注意多币种以及收款对象和联系人的设置 03 账单要保存服务费计算的整个过程,便于后面出报表和数据分析 04 出报表时,要考虑 ...

  6. unity3D与网页的交互---做项目的一点总结

    (来自博客园) 由于项目需要,要求用unity来展示三维场景,并在三维中能够方便的查询数据库等.一开始尝试在unity中直接连接数据库,当时连的xml,然而每次发布成网页后都会出现路径找不到等问题,所 ...

  7. 网页或php服务连不上的几个可能原因

    1.webserver未启动. 2.php未启动. 3.url中端口和webserver配置文件中的不一致.

  8. LR通过snmp监控linux下的mysql

    LR通过snmp监控linux下的mysql 在linux底下安装配置snmp: 1.使用系统盘安装rpm包(这种方式最好) 2.在www.net-snmp.org处下载net-snmp安装(安装后有 ...

  9. hdu 并查集分类(待续)

    hdu 1829 A Bug's Life 题目大意: 给你n个动物,输入m行a,b,表示a和b应该是异性的,要你判断是否有同性恋. 并查集中,1到n代表应性别,n+1到2n代表一个性别,合并一下,判 ...

  10. (转)set集合的用法

    原地址:http://blog.csdn.net/chaiwenjun000/article/details/50561775 SET 集合 百度百科中说集合中的元素有三个特征: 1.确定性(集合中的 ...