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

来源:互联网 发布:游族网络 林奇车祸 编辑:程序博客网 时间:2024/06/05 12:50
题目求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));    }}
0 0
原创粉丝点击