2 juntanhau juntanhau 于 2016.09.21 18:34 提问

C语言不用循环不用递归不用公式怎么计算1+2+3+...+n?

C语言不用循环不用递归不用公式怎么计算1+2+3+...+n?

6个回答

qq_29594393
qq_29594393   Ds   Rxr 2016.09.21 18:47
已采纳

如果 goto 不算在循环里面的话,不然真的无解了 ,看看谁还有更好的办法

int n;
scanf("%d",&n);
 int sum=0; i=1;
 loop:
     sum+=i;
     if(i<n){
            i+=1;
            goto loop;
     }
caozhy
caozhy 这个办法我觉得就很好
接近 2 年之前 回复
juntanhau
juntanhau 回复当作看不见: 先采纳了,虽然你的回答不是我要的。
接近 2 年之前 回复
qq_29594393
qq_29594393 回复juntanhau: 今天caothy不是提供了两种办法解决吗 ,第二种既没有用到公式,没有循环 ,也没有递归 ,那不算是递归调用
接近 2 年之前 回复
juntanhau
juntanhau 不用goto
接近 2 年之前 回复
wmxcn2000
wmxcn2000   Rxr 2016.09.21 18:53

(n+1)*n/2,应该是这个!

juntanhau
juntanhau 不用公式
接近 2 年之前 回复
Ro_bot
Ro_bot   2016.09.21 18:54

int sum = n * (n + 1) / 2;

juntanhau
juntanhau 说了不用公式
接近 2 年之前 回复
qq_33220449
qq_33220449   2016.09.21 19:17
 (n+1)*n/2,

初中学过的

juntanhau
juntanhau 说了不用公式
接近 2 年之前 回复
qq_21922801
qq_21922801   2016.09.21 19:16

调用matlab的库函数可以吗[笑哭]

u012377333
u012377333   Rxr 2016.09.21 19:33

我比较好奇的是为什么不能用循环呢?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
不用循环计算1~100的和
 /** *  * @author Jackie * * 测试不用循环计算1~100的和  */public class Test {  public static void main(String[] args) {    System.out.println(new Test().sum(1));  }    int sum ;  /**   * 利用递归计算   * @param i 从i开
不用循环和递归计算1+2+3+...+100的值
利用类的静态成员变量以及lei
面试题——不用循环计算1+2+...+100之和
前几天看到校招的面试题,要求不要用循环计算出1+2+3...+100之和。当我看到这道题的时候第一反应就是用递归写,能用循环的程序不一定能用递归去写,但是能用递归的程序一定可以用循环写出。所以递归和循环是相铺相成的。        这里我也不知道递归是不是面试考官想要的最优写法,但是这题至少没用循环。这里我写完后修改了下代码,不仅仅是只计算1+2+3...+100的程序,输入一个最小的数字(如5
不用循环,不用递归,输出1到100的整数
很久没有上CSDN了,昨晚去逛了一下,看到一个讨论如何不用循环输出1到100的整数的帖子标题上了论坛头版,于是进去掺和。 因为我觉得这个题目很有意思,对程序员的思维是个很好的考验,看看我们是不是只会定向思维了。 我在帖子里回复了好几次,把我想到的主要的几种解决代码贴在这里。 不用循环、不用递归,输出1到100的整数 (1)SQL版:利用了联表和identity函数      select top
计算从1加到100不使用循环和条件语句。
解决该问题当然可以使用n个printf或cout,但这也太浪费体力了,但如果不能让编译器自己生成这么多printf或cout,也许可以吧。 下面的解决分别从递归,宏函数,类以及模板进行解决。 参考链接:http://coolshell.cn/articles/3445.html http://bbs.csdn.net/topics/360087177 以下源代码#pragma once
不使用循环递归的方式求1~n的和
今天在牛客网上看到一道面试题,感觉很有意思自己也思考了很长时间,希望可以分享下来,题目是这样描述的:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。刚开始的时候我想1+2+3+…+n不正好是等差数列吗?直接使用等差数列的求和公式不就可以吗?n*(n+1)/2,但是公式中依然有乘法啊,所以这个想法被pass掉
【C语言】把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。
来看一个很有意思的一个题目。题目是这样的:请把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。看到这个题当时我也是蒙了。首先想到用的是递归来实现,但是怎么跳出这个循环呢?我想了想,有人给了提示,可以使用与来判断:先看代码:#include  int print(int num) { num && print(num-1); printf("%d ",num); retu
求幂的递归和非递归实现
递归版本的实现: long long int Pow1(int x,unsigned int N) { if (N == 0) { return 1; } if (N & 0x01) { return Pow(x * x,N >> 1) * x; } else return Pow(x * x,N >> 1); }递归 的基准条件是:N==0  此时返回1(不调用自身
1+2+3+4+5+6+7+8+9+n java 不用 if while for等关键字
public class T2 { public static int sum = 0; public static boolean add(int n) { sum += n; // 返回值用boolean,利用&&短路,避免了if判断 return n != 1 && add(n - 1); } public static void main(String[] args)
解题:不用循环、递归,如何从 1 打印到 100(转)
来源:伯乐在线 - 伯小乐 链接:http://group.jobbole.com/22100/ 在 Quora 上看到有个程序员的提问: 如果不用循环、递归、goto,我如何才能用 C++ 从 1 打印到 100 ? 原题主问的是用 C++ 来实现。 【2016-08-10 更新】:补充国外程序员的一些方案: