47、求1+2+3+4+……+n

不让用乘除和循环,但是没有规定不让用pow。所以可以(pow(n,2)+n)>>1

public class Solution {
    public int Sum_Solution(int n) {
        double s=(double)n;
        double t=(Math.pow(s,2.0)+s);
        return ((int)t)>>1;
        
    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个数列和的问题,数列的通项公式为:(-1)^(n+1)/n,其中n为正整数。 将前100项代入公式,得到: s=1-1/2+1/3-1/4+1/5-1/6+1/7-1/8+1/9-1/10+1/11-1/12+1/13-1/14+1/15-1/16+1/17-1/18+1/19-1/20+1/21-1/22+1/23-1/24+1/25-1/26+1/27-1/28+1/29-1/30+1/31-1/32+1/33-1/34+1/35-1/36+1/37-1/38+1/39-1/40+1/41-1/42+1/43-1/44+1/45-1/46+1/47-1/48+1/49-1/50+1/51-1/52+1/53-1/54+1/55-1/56+1/57-1/58+1/59-1/60+1/61-1/62+1/63-1/64+1/65-1/66+1/67-1/68+1/69-1/70+1/71-1/72+1/73-1/74+1/75-1/76+1/77-1/78+1/79-1/80+1/81-1/82+1/83-1/84+1/85-1/86+1/87-1/88+1/89-1/90+1/91-1/92+1/93-1/94+1/95-1/96+1/97-1/98+1/99-1/100 将所有分数通分,得到: s=1/2+1/4+1/6+1/8+1/10+1/12+1/14+1/16+1/18+1/20+1/22+1/24+1/26+1/28+1/30+1/32+1/34+1/36+1/38+1/40+1/42+1/44+1/46+1/48+1/50+1/52+1/54+1/56+1/58+1/60+1/62+1/64+1/66+1/68+1/70+1/72+1/74+1/76+1/78+1/80+1/82+1/84+1/86+1/88+1/90+1/92+1/94+1/96+1/98-1-1/3-1/5-1/7-1/9-1/11-1/13-1/15-1/17-1/19-1/21-1/23-1/25-1/27-1/29-1/31-1/33-1/35-1/37-1/39-1/41-1/43-1/45-1/47-1/49-1/51-1/53-1/55-1/57-1/59-1/61-1/63-1/65-1/67-1/69-1/71-1/73-1/75-1/77-1/79-1/81-1/83-1/85-1/87-1/89-1/91-1/93-1/95-1/97-1/99 将分数合并,得到: s=.688172 因此,该数列的前100项和为.688172。 ### 回答2: 这个问题是一个序列的和,序列中包含了一系列的分数,即1/2、1/3、1/4、1/5、...、1/100。而这些分数前面都是加号或减号,需要组合起来出总的和s。 我们可以通过分离出每一个分数然后一项一项加减来实现这个计。首先,将1减去1/2,得到1/2作为第一项,然后加上1/3,再减去1/4,继续加上1/5,一直计到最后的-1/100。每一步的计都很简单,只需要依次处理每一个分数并且正确地加减即可。最终的结果即为序列的总和s。 这个问题的关键在于对分数的加减法的处理。对于加法而言,我们可以将所有的分数简单地相加即可;但是对于减法,我们如何对两个分数进行减法操作呢?这时候我们可以先将两个分数的分子通分,然后再相减即可。例如,1/3 - 1/4 = 4/12 - 3/12 = 1/12。 因此,我们可以按照这个思路来对这个序列进行和。具体计过程可以表示为: s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - ... - 1/100 = 1 + (1/3 + 1/5 + 1/7 + ... + 1/99) - (1/2 + 1/4 + 1/6 + ... + 1/100) = 1 + [1/3(1 + 1/3 + 1/5 + ... + 1/33)] - [1/2(1 + 1/2 + 1/3 + ... + 1/50)] 其中用到了一些比较有用的公式,如等比数列和公式: 1 + 1/2 + 1/4 + 1/8 + ... + 1/2^n = 2 - 1/2^n 还有一个等差数列和公式,用于和1至n之间的所有正整数: 1 + 2 + 3 + ... + n = n(n+1)/2 通过这个方法计出来的结果是: s = 0.6881721793101951 至此,我们成功地利用加减法来出了这个序列的总和。 ### 回答3: 这道题目是一个和题,需要计给定序列中所有数的和。首先,我们需要分析给定序列的规律,以便能够用公式计总和。观察后可以发现,这个序列的每项是一个分数,分母为奇数,分子为等差数列,从1开始每次递减1。因此,我们可以将给定序列表示为以下形式: s= 1-1/2+1/3-1/4+1/5-1/6+……-1/100 接着,我们需要利用数学公式,把这个序列和。因为这个序列中有加有减,不好立即用和公式计,我们可以将这个序列分成两个等差数列,一个是分子为奇数的序列,一个是分子为偶数的序列。分别计两个序列的总和,再相加起来,就是原序列的总和。具体地,我们可以这样计: s1= 1+1/3+1/5+……+1/99 s2= 1/2+1/4+1/6+……+1/100 计 s1 和 s2 的公式是: s1= 1+1/3+1/5+……+1/99=π/4,这里π是圆周率。 s2= 1/2+1/4+1/6+……+1/100=1/2(1+1/2+1/3+……+1/50) 这里,我们需要用到一个重要的数学公式,调和级数: 1+1/2+1/3+......1/n=ln(n)+ξ(其中ξ是欧拉常数,约为0.5772156649) 因此,我们可以计出 s2 的: s2=1/2(1+1/2+1/3+……+1/50)=1/2[ln(50)+ξ]=ln(50)/2+ξ/2 把 s1 和 s2 相加,得到原序列的总和: s= s1-s2 = π/4 - ln(50)/2 - ξ/2 这个可以用科学计数法表示,约等于0.688。 因此,这个序列的总和是0.688。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值