• 【剑指Offer面试编程题】题目1506:求1+2+3+...+n--九度OJ


    题目描述:

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

     

    输入:

    输入可能包含多个测试样例。
    对于每个测试案例,输入为一个整数n(1<= n<=100000)。

     

    输出:

    对应每个测试案例,
    输出1+2+3+…+n的值。

     

    样例输入:

     

    3
    5

    样例输出:

     

    6
    15

    【解题思路】本题中开始思考发现有些棘手,不能用乘除法,但我们需要发现关键是我们可以用加减法,但加减法有一个问题,我们不能使用条件语句,也就意味我们不能轻易终止累加。那么我们想的是否有其他的操作可以替换条件语句来完成终止条件的任务,此时我们脑海里面只有逻辑操作这个候选了。是的,我们可以巧妙的利用0 和 && 的逻辑操作来作为终止条件。那么我们就可以轻易的设置一个递归函数,然后用&&来作为终止条件,完成任务。

    AC code:

     

     1 #include <cstdio>
     2 #include <vector>
     3 using namespace std;
     4  
     5 int cal(const int n,int &re)
     6 {
     7   n && cal(n-1,re);
     8   return re+=n;
     9 }
    10  
    11 int main()
    12 {
    13   int n;
    14   while(scanf("%d",&n)!=EOF)
    15   {
    16     int re=0;
    17     printf("%d
    ",cal(n,re));
    18   }
    19   return 0;
    20 }
    21 /**************************************************************
    22     Problem: 1506
    23     User: huo_yao
    24     Language: C++
    25     Result: Accepted
    26     Time:370 ms
    27     Memory:1316 kb
    28 ****************************************************************/

     

     

    题目链接:http://ac.jobdu.com/problem.php?pid=1506

     

     

    九度-剑指Offer习题全套答案下载:http://download.csdn.net/detail/huoyaotl123/8276299



  • 相关阅读:
    maven系列--eclipse的m2插件
    eclipse安装反编译插件
    maven系列--settings.xml
    maven系列--maven常用命令
    maven系列--maven目录
    centos 常用命令
    iis7.0 发生未知 FastCGI错误,错误代码 0x8007010b 的解决办法
    git 提交的步骤
    关于PHP函数传参的注意点
    关于SQL查询语句中的LIKE模糊查询的解释
  • 原文地址:https://www.cnblogs.com/huoyao/p/4248873.html
Copyright © 2020-2023  润新知