标题:[推荐]绝对1~100的和+1!~20!之和+1/1~1/10之和的完整解法
只看楼主
CoolFlyTow
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2004-9-16
得分:0 

你的程序虽然看上去短但是如果只考虑乘除加减运算的话,你的次数比我的多(在我的mulMyArray函数你知使用了4*n次,你的计算阶乘的是这里吧

for (e=1;e<=f;e++) for(x=22;x>=0;c=t[x],c*=e,a=c/p,b=c%p,t[x]=b+g,g=a,x--);

太多了吧!!

好像还有问题如果从程序算法来看,当你计算c*=e时由于都是long这时如果发生有进位,那么你后面的g代表的进位值又有什么意义啊???? ——long的上限为2147483647

好像你没注意到你在数组里面存储的值并不是十进制把而且long是带符号的有可能计算的时候出现错误啊,没有处理进位的代码不严谨。

[此贴子已经被作者于2004-10-17 13:02:33编辑过]


2004-10-17 12:35
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 

回答你的三个问题:

1,算法不好是的,我前一个贴子里已经提到这个问题,并提供了去看看mikewolf的1000!--------一个比较好的算法的建议。

2,3,一起回答,你没有看懂我的程序,所以有二,三两个问题。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-10-17 13:43
CoolFlyTow
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2004-9-16
得分:0 

并提供了去看看mikewolf的1000!我不知道在哪里,点击后没什么东西啊只有个人资料!!!

你的程序我看懂了,问题在你的上一楼已经说了


2004-10-17 14:09
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 

好像还有问题如果从程序算法来看,当你计算c*=e时由于都是long这时如果发生有进位,那么你后面的g代表的进位值又有什么意义啊???? ——long的上限为2147483647

对,long的上限为2147483647,c是什么?c=t[x],而t[x]是由p来决定位数的(本程式中p=10000000)即7位数,那么c有可能最大的数就是9999999,e最大数是100,c*=e在long大小之内不会发生溢出,a为当次循环进位数,g为上次循环进位数,g=a,即保留进位数。

好像你没注意到你在数组里面存储的值并不是十进制把而且long是带符号的有可能计算的时候出现错误啊,没有处理进位的代码不严谨。

不知道你这个问题从何谈起?不是十进制是什么?有什么错误请具体指出。再问一句你运行了没有?难道结果不正确吗?


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-10-17 14:33
CoolFlyTow
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2004-9-16
得分:0 

算了,我无法知道你算的是不是正确。

除非你把你的计算阶乘的部分写成函数,我在能验证!!!!


2004-10-17 14:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-6655-1-1.html




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

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