打解什么生肖?
这个题目挺有意思的,我原先以为这是道谜语或者字谜呢!看了题目之后,才明白这原来是一道数学题啊!虽然我是学数学的,但是这道题我却不会做(虽然我是学数学的,但是我的数学功底基本上已经还给了高中数学老师)。。。看来我还是得好好学习学习才行。 那我们就先看看题目吧! 就题目来看这是一道求和的题目,而且我们需要求的和是 1+2+3+.....+n=n(n+1)÷2 的值。
那么问题就变成了如何求出 n(n+1) 的大小了,这个问题简单,我们直接写个程序,用迭代来求出 n 就可以了哦~ # include int main (void) { int n; scanf("%d",&n); printf("第%d个奇数之和为%d\n",n,n*(n+1)/2); } 这个程序输入一个整数 n,然后通过循环,从 1 开始,每次加 1,直到碰到 n 为止,然后相加的和就是我们要的结果啦!
接下来,我们看看,当 n 从 100 逐渐变成 999的时候,程序输出的结果是什么。 当 n 从 100 慢慢增长到 999的时候,我们发现,随着 n的增加,输出结果也在不停地增加,这说明我们的计算结果是成立的呀! 既然计算结果是正确的,那为什么还要问 “打解” 是什么呢?这个问题问得真是时候,恰好我今天刚学了子集,那我就用子集来解这道题吧!(不知道对不对诶,反正先这样写吧~) A={1,2,3,4} B={2,3,4,5} C={2,3,6,7} D={2,3,8,9} E={1,3,6,8} F={1,3,7,9} G={4,6,7,8} H={4,5,6,7} I={5,6,7,8} J={5,6,7,9} K={6,7,8,9} L={7,8,9,10} M={8,9,10,11} N={9,10,11,12} O={10,11,12,13} P={11,12,13,14} Q={12,13,14,15} R={13,14,15,16} S={14,15,16,17} T={15,16,17,18} U={16,17,18,19} V={17,18,19,20} W={18,19,20,21} X={19,20,21,22} Y={20,21,22,23} Z={21,22,23,24} 所以答案应该是 1+2+3+……+999 = \sum_{i=1}^{1000}{i} = i\cdot(1+i)\frac{i}{2} = \frac{(1+1000)(1000+1)}{2} = 501005