现在的位置: 首页 > 综合 > 正文

不用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)求1+2+…+n

2013年12月07日 ⁄ 综合 ⁄ 共 248字 ⁄ 字号 评论关闭

题目:不用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)求1+2+…+n。

在网上看到2种解法,

解法1:利用类的静态变量,每创建一个类对象,将静态变量增加一定的值,然后创建一个n大的对象数组,打印出该静态变量。

解法2:利用&&的短路性质(其实是变相的 if 表达式),然后进行递归。

int sum(int n) {
	int tmp = 0;
	n && (tmp = sum(n - 1));//若n == 0,则不再对tmp求值,相当于递归的终止条件
	return n + tmp;
}

抱歉!评论已关闭.