1+2+3+4+5+6+7+8+9+1...

菁优解析考点:.专题:等差数列与等比数列.分析:由已知得a1=1,an为连续n个自然数的和,求出第一个数和末一个数,由此能求出an;Sn是从1加到某一个数,且Sn所求的最后一项是1+2+…+n=n(n+1),由此能求出Sn.解答:解:由已知得a1=1,an为连续n个自然数的和,第一个数是[1+2+…+(n-1)]+1=n(n-1)+1=(n2-n+2),末一个数是n(n-1)+n=(n2+n).∴an=[(n2-n+2)+(n2+n)]n =n(n2+1),Sn是从1加到某一个数,找规律n=1,最后的数是1,n=2,最后的数是1+2=3,n=3,最后的数是1+2+3=6,∴Sn所求的1+2+…+m最后一项是1+2+…+n=n(n+1),∴Sn=1+2+3+…+n(n+1)=[1+(n2+n)]o(n2+n) =(n2+n)(n2+n+2).点评:本题考查数列的通项公式和前n项和的求法,是中档题,解题时要认真审题,注意等差数列的性质的合理运用.答题:zlzhan老师 
其它回答(2条)
a1=1 an为连续n个自然数的和, 第一个数是[1+2+……+(n-1)]+1=(1/2)n(n-1)+1=(1/2)(n^2-n+2), 末一个数是(1/2)n(n-1)+n=(1/2)(n^2+n). 所以an=(1/2)[(1/2)(n^2-n+2)+(1/2)(n^2+n)]n =(1/2)n(n^2+1)
前n项和为Sn = 1+2+3+4+5+...+(1+n)n/2 = (n?/2 + n/2 +1)×(n+1)n/2 ÷2所以 an = Sn - Sn-1化简一下
&&&&,V2.316239603人阅读
数据结构(3)
一共有3^8种可能。
成功:12+34+56+7-8+9 = 110
成功:12+3+45+67-8-9 = 110
成功:12-3+4-5+6+7+89 = 110
成功:1+2+34+5+67-8+9 = 110
成功:1-2+3+45-6+78-9 = 110
成功:123+4-5-6-7-8+9 = 110
成功:123-4+5-6-7+8-9 = 110
成功:123-4-5+6+7-8-9 = 110
成功:123+4+5+67-89 = 110
成功:1+234-56-78+9 = 110
两种方法:
* Copyright (C) 2012 Lear C
* 1 2 3 4 5 6 7 8 9 = 110
* 在数字间填入加号或者减号(可以不填,但不能填入其它符号)使等式成立。 &br/&
* 一种更好的方法是:&br/&
* 每一个空隙之间都有三种可能,&+&, &-&, &&,所以一共有3^8种可能。
* @author Lear
public class Tester2 {
private static final char[] NUMBERS = {'1', '2', '3', '4', '5', '6', '7', '8', '9'};
private static final String[] OPERATORS = {&+&, &-&, &&};
private static final int RESULT = 110;
// 计算结果
public static void main(String[] args) {
sortAndCompute(0, &&);
private static void sortAndCompute(int numIndex, String buffer) {
// 说明到最后一个字符了
if(numIndex == NUMBERS.length - 1) {
buffer += NUMBERS[numIndex];
String formula = buffer.toString();
if(sum(formula) == RESULT) {
System.out.println(formula + & = & + RESULT);
for(int operIndex = 0; operIndex & OPERATORS. ++operIndex) {
buffer += NUMBERS[numIndex];
buffer += OPERATORS[operIndex];
sortAndCompute(numIndex + 1, buffer);
// 消除前面两个已经添加的字符恢复原状,以便下一次循环的叠加
// 但是当中间连接符变为''的时候,则只删除buffer中的前面一个字符
buffer = operIndex != 2 ? buffer.substring(0, buffer.length() - 2)
: buffer.substring(0, buffer.length() - 1);
private static int sum(String formula) {
if(formula == null || formula.trim().length() == 0)
throw new IllegalArgumentException(&formula is invalid!&);
Stack&String& numStack = new Stack&String&();
Stack&String& operStack = new Stack&String&();
StringBuffer numBuffer = new StringBuffer();
formula += &#&; // 添加一个结束符到公式末尾便于计算
char[] chs = formula.toCharArray();
for(int index = 0; index & formula.length(); ++index) {
if(chs[index] != '+' && chs[index] != '-' && chs[index] != '#') {
numBuffer.append(chs[index]);
numStack.push(numBuffer.toString());
numBuffer.delete(0, numBuffer.length());
if(operStack.isEmpty()) operStack.push(chs[index] + &&);
int numAft = Integer.parseInt(numStack.pop());
int numBef = Integer.parseInt(numStack.pop());
String oper = operStack.pop();
int sum = oper.equals(&+&) ? numBef + numAft : numBef - numA
numStack.push(sum + &&);
operStack.push(chs[index] + &&);
return Integer.parseInt(numStack.pop());
import java.util.ArrayL
import java.util.C
import java.util.L
* 1 2 3 4 5 6 7 8 9 = 110
* 在数字间填入加号或者减号(可以不填,但不能填入其它符号)使等式成立。
* @author Lear
public class Tester {
private static final char[] NUMBERS = {'1', '2', '3', '4', '5', '6', '7', '8', '9'/**/};
private static final int RESULT = 110; // 计算结果
public static void main(String[] args) {
List&List&String&& all = sort(NUMBERS);
testPrint(all);
for(List&String& aRank : all) {
printEstablishEquation(aRank);
private static void testPrint(List&List&String&& all) {
for(List&String& aRank : all) {
System.out.println(aRank);
* 按nums的顺序进行排列组合,最后返回一个List数组,它将包含所有的可能的一个由一列数据的List数组。
* 此为一个递归函数,第一个的组合数字后面的字符都将继续调用此函数以计算出List&List&String&&.&br/&
* 缺点:数据量增大时,将导致内存溢出,而且算法的效率低下
* @param nums
* @return 格式:[[1,2,3,4..],[12,3,4,..],[12,34,...],....]
private static List&List&String&& sort(char[] nums) {
if(nums.length == 0) return Collections.emptyList();
List&List&String&& all = new ArrayList&List&String&&();
// 字符数组直接加入此List中
List&String& firstRank = new ArrayList&String&();
for(int i = 0; i & nums. ++i) {
firstRank.add(nums[i] + &&);
all.add(firstRank);
// 组合数字的个数,如:1,2,3,4.... ; 12,3,4,5.. ; 123,4,5.. ; 1234.5 ...
for(int combinationNum = 2; combinationNum &= nums. ++combinationNum) {
// 此组合的偏移量,如:12,3.... ; 1,23,4....; 1,2,34,...
for(int offset = 0; offset & nums.length - (combinationNum - 1); ++offset) {
List&String& preRank = new ArrayList&String&();
StringBuilder buffer = new StringBuilder();
for(int i = 0; i & ++i) { // 前
preRank.add(nums[i] + &&);
for(int i = i & offset + combinationN ++i) { // 中
buffer.append(nums[i]);
preRank.add(buffer.toString());
// 获取后面的字符数组,然后递归组合
char[] suffix = new char[nums.length - (offset + combinationNum)];
for(int i = offset + combinationNum, index = 0; i & nums. ++i, ++index) { // 后
suffix[index] = nums[i];
// 例如:12组合的后面 [[3,4,5,6,7...],[34,5,6...],[345...]]
List&List&String&& sufArray = sort(suffix);
// 为里面的所有List&String&添加前面的数字组合,
// 例如:添加12到上面的例子中,使之成为[[12,3,4,...],[12,34...]....]
if(sufArray.size() != 0)
for(List&String& sufRank : sufArray) {
// 组合前后的List
List&String& allRank = new ArrayList&String&();
for(int i = 0; i & preRank.size(); ++i) allRank.add(preRank.get(i));
for(int i = 0; i & sufRank.size(); ++i) allRank.add(sufRank.get(i));
// 添加到all中去
all.add(allRank);
all.add(preRank); // 说明到末尾了
private static void printEstablishEquation(List&String& ls) {
char[] operators = {'+', '-'};
StringBuilder buff = new StringBuilder();
// 转换为数字
int[] nums = new int[ls.size()];
for(int i = 0; i & ls.size(); ++i) {
nums[i] = Integer.parseInt(ls.get(i));
// 对应的操作符是否变化的数组
boolean[] isOperChanges = new boolean[nums.length - 1];
// 计算每一个isOperChange的变化周期
int[] perOperChangeCounts = new int[isOperChanges.length];
for(int index = 0; index & isOperChanges. ++index) {
perOperChangeCounts[index] = (int) Math.pow(2, index);
// 可能性的计算次数 2^(nums.length - 1)
int computeCount = (int) Math.pow(2, nums.length -1);
for(int i = 1; i &= computeC ++i) {
// 迭代计算
int sum = nums[0];
buff.append(nums[0]);
for(int index = 0; index & nums.length - 1; ++index) {
sum = isOperChanges[index] ? sum - nums[index + 1] : sum + nums[index + 1];
buff.append(isOperChanges[index] ? operators[1] : operators[0]);
buff.append(nums[index + 1]);
if(sum == RESULT) // 输出等式成立的表达式
System.out.println(&成功:& + buff.toString() + & = & + sum);
System.out.println(&失败:&
+ buff.toString() + & = & + sum);
buff.delete(0, buff.length());
// 操作符交替变化数组的迭代计算。
// 第1操作符,每次交替变化;第2操作符,i每 2^2次变化一次;第3操作符,i每2^3次变化一次
for(int index = 0; index & isOperChanges. ++index) {
if(i % perOperChangeCounts[index] == 0)
isOperChanges[index] = !isOperChanges[index]; // 交替
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:187513次
积分:2545
积分:2545
排名:第12264名
原创:54篇
转载:62篇
评论:14条
(2)(6)(2)(1)(6)(2)(4)(1)(1)(1)(3)(1)(4)(1)(2)(2)(9)(5)(4)(20)(20)(12)(9)扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
1+2-3-4+5+6-7-8+9+10-.+2016的简便算
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
1+2-3-4+5+6-7-8+9+10-.-2016=(1+2-3-4)+(5+6-7-8)+(9+10-11-12)+.+(0.13+16)=-4+(-4)+(-4)+……+(-4)=-4×(2016÷4)=-4×504=-2016请点击下面的【选为满意回答】按钮.
是+2016,你弄错了
如果按你给的规律的话,最后应该是-2016
是不是题目没给完整?
没有弄丢,一样也不少
1+2-3-4+5+6-7-8+9+10-.....-
=(1+2-3-4)+(5+6-7-8)+(9+10-11-12)+.....+(4-)+2016
=-4+(-4)+(-4)+……+(-4)+2016
=-4×504+2016
为您推荐:
其他类似问题
扫描下载二维码当前位置:
>>>观察下列各式并填空:1=1,2+3+4=9,3+4+5+6+7=,4+5+6+7+8+9+10=..
观察下列各式并填空:1=1,2+3+4=9,3+4+5+6+7=&&&&&&&,4+5+6+7+8+9+10=49,…,由此可归纳出=&&&&&&&&。
题型:填空题难度:中档来源:不详
马上分享给同学
据魔方格专家权威分析,试题“观察下列各式并填空:1=1,2+3+4=9,3+4+5+6+7=,4+5+6+7+8+9+10=..”主要考查你对&&数列求和的其他方法(倒序相加,错位相减,裂项相加等)&&等考点的理解。关于这些考点的“档案”如下:
现在没空?点击收藏,以后再看。
因为篇幅有限,只列出部分考点,详细请访问。
数列求和的其他方法(倒序相加,错位相减,裂项相加等)
数列求和的常用方法:
1.裂项相加法:数列中的项形如的形式,可以把表示为,累加时抵消中间的许多项,从而求得数列的和; 2、错位相减法:源于等比数列前n项和公式的推导,对于形如的数列,其中为等差数列,为等比数列,均可用此法; 3、倒序相加法:此方法源于等差数列前n项和公式的推导,目的在于利用与首末两项等距离的两项相加有公因式可提取,以便化简后求和。4、分组转化法:把数列的每一项分成两项,或把数列的项“集”在一块重新组合,或把整个数列分成两个部分,使其转化为等差或等比数列,这一求和方法称为分组转化法。5、公式法求和:所给数列的通项是关于n的多项式,此时求和可采用公式求和,常用的公式有:& 数列求和的方法多种多样,要视具体情形选用合适方法。 数列求和特别提醒:
(1)对通项公式含有的一类数列,在求时,要注意讨论n的奇偶性;(2)在用等比数列前n项和公式时,一定要分q=1和q≠1两种情况来讨论。
发现相似题
与“观察下列各式并填空:1=1,2+3+4=9,3+4+5+6+7=,4+5+6+7+8+9+10=..”考查相似的试题有:
432334491831272851846036432626339562}

我要回帖

更多关于 6楼7楼8楼9楼哪层好 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信