首页 新闻 会员 周边 捐助

面试算法题

0
悬赏园豆:20 [已解决问题] 解决于 2011-07-25 20:04
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。

求C#算法,谢谢
meifage2的主页 meifage2 | 初学一级 | 园豆:41
提问于:2011-07-24 21:20
< >
分享
最佳答案
0

可以用Math类里面的静态方法呀,满好用的;如Math.Pow(2, 12);这是求2的12 次方;返回一个double类型的数

收获园豆:20
小-_-戴 | 初学一级 |园豆:9 | 2011-07-24 22:21
好像没有求和的静态方法
meifage2 | 园豆:41 (初学一级) | 2011-07-24 22:50
你就不能用一下脑子吗?比如是1到点50的求和((Math.pow(n,2))+n)/2或者(1+n)*n/2
小-_-戴 | 园豆:9 (初学一级) | 2011-07-25 00:26
应该是1到n的
小-_-戴 | 园豆:9 (初学一级) | 2011-07-25 00:27
不能用* /的
meifage2 | 园豆:41 (初学一级) | 2011-07-25 07:49
long rem= 0;
double d = Math.DivRem((long)(Math.Pow(50, 2) + 50),2,out rem);里面是封装了乘法和除法有的过程,这样不行我就没有更简单的算法了,如果只是不能出现*/这种符号这个方法应该可以吧
小-_-戴 | 园豆:9 (初学一级) | 2011-07-25 08:39
其他回答(4)
0

foreach 可以用吗?
可以的话直接用foreach呀!

Xiongpq | 园豆:293 (菜鸟二级) | 2011-07-24 21:22
0

递归。

顾晓北 | 园豆:10898 (专家六级) | 2011-07-25 08:55
我考虑用递归

public static int Sum(int n)
{
int temp+= Sum(n - 1) + n;

return temp;
}



边界条件n>0没法判断
支持(0) 反对(0) meifage2 | 园豆:41 (初学一级) | 2011-07-25 13:11
怎么没法判断?
int Sum(int n)
{
if (n<=0)
{
return 0;
}
else
{
return Sum(n - 1) + n;
}
}
支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2011-07-25 15:13
不能用if.
支持(0) 反对(0) 刘鸿海 | 园豆:655 (小虾三级) | 2011-07-25 18:57
0

int i=0写在方法外边,写成常量,里边就不用判断了。

CarsonCui | 园豆:162 (初学一级) | 2011-08-02 18:38
0

return (n*(n+1))/2;

getgoing | 园豆:129 (初学一级) | 2012-01-05 11:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册