| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1581 人关注过本帖
标题:最简单的问题把我给搞迷了
取消只看楼主 加入收藏
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
最简单的问题把我给搞迷了
问题是计算1-2+3-4+5-6+……-100;
规律一目了然,只是不知道怎么实现,首先不能用if,只能用while.
说是可以让定义的数(*-1),但是是负数还可以,但是如果是正数,该怎么办呀。
分数有限,知识无限,明白了这个问题,这点分数值了。
搜索更多相关主题的帖子: 一目了然 怎么办 知识 
2012-01-12 11:33
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 7楼 beyondyf
其实这个问题是我从这个问题上想出来的一个问题,原问题是:
计算1-1/2+1/3-1/4+……+1/99-1/100;
S1:sgin=1
S2: sum=1
S3: deno=2
S4: sign=(-1)*sign
S5: term=sign*(1/deno)
S6: sum=sum+term
S7: deno=deno+1
S8: 若deno<=100返回S4;否则算法结束。
我从这个问题想到的那个问题,我本来想如果那个问题想明白了,这个问题也就想明白了,
刚开始分母=2,然后分子*-1就成了-1,当前的值就是-1*(1/2)就是-1/2,
接着总数=总数加上当前值,也就是1+(-1/2)等价于1-1/2,分母=分母+1;接着判断条件不成立,返回S4
这时候的分子不再是原来的1了,已经再上一轮变成了-1,所以在S4那里 分子*(-1)=1;
再然后到S5,当前值=1*(1/3),总数=总数+当前值,也就是 +(1/3)。
今天终于想通了,原来再运行到S4那里的时候,分子已经不再是原来的1了,在上一轮就已经变成-1了,我迷茫了2天了,做梦都在想这个问题。
2012-01-12 19:44
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
原题不变,就按照楼上的题目分析,大家做下1-2+3-4+5-……+99-100,这个题目,散分了哦。
2012-01-12 19:49
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 11楼 beyondyf
#define f(n)    (((n)&1)*(n)-(n)/2)
你这个公式确实厉害,虽然相与应用的还不是太熟练,但是这个式子确实管用,你这个公式是怎么算出来的?
n&1的意思是,不管n的值是多少,如果他的二进制码最后一位是0,那么n&1的值就是0,如果n的二进制最后一位是1,他们的值是不是就成了1呢?
这里的1起的是什么作用呢?

[ 本帖最后由 小赵q1 于 2012-1-13 00:22 编辑 ]
2012-01-13 00:10
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
部分和为:
1 = 1,
1 − 2 = −1,
1 − 2 + 3 = 2,
1 − 2 + 3 − 4 = −2,
1 − 2 + 3 − 4 + 5 = 3,
1 − 2 + 3 − 4 + 5 − 6 = −3
当n为偶数时,结果为:(-1)*(n/2),当n为奇数时,结果为:1*(n+1)/2,
因为偶数的二进制码最后一位永远是0,奇数的二进制码最后一位永远是1,
所以就用(n&1)的方法判断n是奇数还是偶数,并得出一个值是0或1,当n为偶数时,结果为0-(n/2),当n为奇数时,结果1,
0*任何数都是0所以当n为偶数时公式变为:0*n-(n/2),
当n为奇数时,公式变为:1*n-(n/2),因为都是整数,n/2的结果取整。
看维基百科,初中毕业的我表示看的一头雾水,还是慢慢来吧。
2012-01-14 11:10
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 20楼 beyondyf
恩,其实,问题就是,明明很简单的问题,不能想的太复杂了,那样容易影响自己的判断。
2012-01-15 05:02
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 21楼 missu_1314
要求的有,不能用if语句。呵呵,在下面多练习下哦。
2012-01-15 05:03
快速回复:最简单的问题把我给搞迷了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025573 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved