求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. Android - 控件android:ems属性

    Android - 控件android:ems属性http://blog.csdn.net/caroline_wendy/article/details/41684255?utm_source=tui ...

  2. revert merge会出现的问题

    比如当我们git revert的时候, git revert Git会抱怨: is a merge but no -m option was given 这是因为你revert的那个commit是一个 ...

  3. angularjs实战

    1.指令  transclude 保留原来的内容 replace 去掉<my-directive>指令 <script src="http://apps.bdimg.com ...

  4. mathematica练习程序(图像取反)

    代码很简单,就四行,我想到可以用mathematica干点什么了. 有人通过mathematica编程研究过视频编解码算法么,挺有意思,可以尝试一下. img=Import["f:/lena ...

  5. css中box-shadow阴影效果的使用

    text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着HTML5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...

  6. LoadRunner参数化之数据取值和更新方式

    其实看LR已经很久了,每次看到参数化的取值更新时,都没有看透,了解个大概就为止了,也确实挺搞脑子的. 现在理解下来 分成2部分 取值方式  Select next row 如何从数据列表中取值 Seq ...

  7. Javaweb三大组件之过滤器filter

    Filter的三个方法 void init(FilterConfig):在Tomcat启动时被调用: void destroy():在Tomcat关闭时被调用: void doFilter(Servl ...

  8. Codeforces Round #354 (Div. 2)-D

    D. Theseus and labyrinth 题目链接:http://codeforces.com/contest/676/problem/D Theseus has just arrived t ...

  9. DOM--4 响应用户操作和事件(2)

    自定义事件 //旧的方法 //创建 var event = document.createEvent('Event'); //初始化 event.initEvent('build', true, tr ...

  10. 基于netty的微服务架构

    基于netty的微服务架构 微服务一篇好文章 http://san-yun.iteye.com/blog/1693759 教程 http://udn.yyuap.com/doc/essential-n ...