您的位置:首页 > 其它

求1+2+3+...+n (老题)

2016-06-26 21:07 232 查看
题目

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
解题

直接求和公式sum=(1+n)n/2,有乘法除法,+-模型*/,需要for


这是一道非常老的面试题,今天又遇到了就记录下吧,等学的更熟练时,再补充解法

#include <bits/stdc++.h>
using namespace std;
long long Cal(long long n,long long &sum)
{
n&&Cal(n-1,sum);//利用与门特性//这里我想到了用STL时常见的RE就是因为结构为空,但是执行语句却是读取等操作
return sum+=n;
}
int main(void)
{
long long n;
while(cin>>n)
{
long long sum = 0;
printf("%I64d\n",Cal(n,sum));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: