求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
第一种解法 递归,用hashmap 来选择A和SumN的不同sum方法,最终用A的sum方法终止递归。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
class A{
public long sum(long i){
return 0;
}
}
public class SumN extends A {
public static HashMap<Boolean,A> a= new HashMap<Boolean,A>();
public long sum(long i){
return i+a.get(i==0).sum(i-1);
}
public static void main(String [] args) throws NumberFormatException, IOException{
long n = 1000L;
a.put(true, new A());
a.put(false, new SumN());
/*System.out.println("Enter a number:\n");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s="";
while((s=br.readLine())!=null&&s.length()!=0){
int n = Integer.parseInt(s.trim());
br.close();
*/
System.out.println("sum "+a.get(false).sum(n));
}
}
分享到:
相关推荐
用递归求1+2+3+...+n的算法。初学者使用。
编程求1+1/2+1/3+...+1/n 输入 输入:输入一行,只有一个整数n(1<=n) 输出 输出:输出只有一行(这意味着末尾有一个回车符号),包括1个实数。(保留3位小数) 样例输入 Copy 5 样例输出 Copy 2.283
1158:求1+2+3+... 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 14633 通过数: 12299 ...用递归的方法求1+2+3+……+N的值。 【输入】 输入N。 【输出】 输出和。 【输入样例】 5 【输出样例】 15 【来源】 No
求1+1*2+1*2*3+...+1*2*3*...*n的和
求满足1+2+3+…n的最大正整数n的MATLAB程序
【C语言】1+2+3+...+n的值源码 适用于初学者学习
求1+2+..+n的和,数值范围最大支持long long
Description 将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,其中n1≥n2...第2至n+1每行一个正整数。 Output 对应每组输入,输出正整数n的不同划分个数。 Sample Input 2 5 6 Sample Output 7 11
java代码-使用Java递归求和1+2+3+...+n的源代码 ——学习参考资料:仅用于个人学习使用!
C语言编程-编写函数fun求1!+2!+3!+ …… +n!的和,在main函数中由键盘输入n值,并输出运算结果;请编写fun函数;例如:若n值为5,则结果为153;
用labview8.5 求1+2+3+……(n-1)的和
编写函数求下式的值,n^1+n^2+n^3+……+n^10,其中,n=1,2,3。函数参数的默认值为1.。
求1+2+…+n.md
建一个控制台应用程序,要求输入数字n后,输出1!+2!+…+n!的结果
c语言程序设计教程(第二版)谭浩强,经典例题,对于学习c语言有很大帮助
求n个整数的阶乘1!+2!+3!+...n!,VB.net源代码
算法的特性:输入输出、有穷性、确定性、可行性。 时间复杂度:T(n)=O(f(n))。 空间复杂度:S(n)=O(f(n))。...常用的时间复杂度所耗费的时间从小到大依次是:O(1)(logn)(n)(n logn)(n²)(n³)(2的n次方)(n!)(n的n次方)
编程实现计算:1!+2!+3!+……+N!的值,要求定义并调用函数计算N!。
2.编写函数,求出"1/(1X2)-1/(2X3)+1/(3X4)-1/(4X5)+…"前n项的和,函数以n为参数,它是用户输入的 def sum(n): r=0 while n>=1: if n%2==0: r-=1/(n*(n+1)) else: r+=1/(n*(n+1)) n-=1 return r num=int...