public static int doFactorial(int n) { if (n < 0){ return -1; } if (n == 0) {// 0!=1 return 1; } else if (n == 1) {// 退出递归的条件 return 1; } else {// 满足进行递归的条件 return n * doFactorial1(n - 1); } }
sum=1!+2!+3!...+n!,在一个方法中实现!
public static int doFactorial(int n) { if(n > 0){ return n * doFactorial1(n - 1); } elst if (n == 0) { return 1; } return -1; } public static int doSum(int n) { if(n>1) { return doSum(n-1)+doFactorial1(n); } if(n==1) return 1; else return -1; }
// 把和当参数传进去 public class A{
public static int doFactorial(int n,int sum) { if (n < 0){ return -1; } if (n == 0) { // 0!=1 return 1; } else if (n == 1) { System.out.println(sum+1); // 退出递归的条件 return 1; } else {// 满足进行递归的条件 sum=sum+n*doFactorial(n-1,0);
return n *doFactorial(n - 1,sum); } } public static void main(String [] args){ System.out.println(doFactorial(5,0)); } }
public final class Test { public static void main(String[] args) {
System.out.println(doFactorial(5).get("sum")); }
static HashMap doFactorial(int n) {
HashMap map = new HashMap(); if(n == 1) { map.put("sum", new Integer(1)); map.put("value",new Integer(1)); } else {
int value = Integer.parseInt(doFactorial(n - 1).get("value").toString()); int sum = Integer.parseInt(doFactorial(n - 1).get("sum").toString()); map.put("sum", new Integer(n*value + sum)); map.put("value", new Integer(n *value)); } return map; } } 已经经过测试,结果正确
public class Digui { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 int n = 0; int sum = 0; System.out.print("请输入n的值:"); n = new Scanner(System.in).nextInt(); Digui dg = new Digui(); sum = dg.digui(n); System.out.println(sum);
} public int digui(int n) { if(n <= 0) return 0; int x = 1; for(int i = 1; i<=n; i++ ) { x *= i; } return x+digui(n-1); }
public static int doFactorial(int n) { if (n < 0){ return -1; } if (n == 0) {// 0!=1 return 1; } else if (n == 1) {// 退出递归的条件 return 1; } else {// 满足进行递归的条件 return n + doFactorial1(n - 1); } }
//1!+2!+3!...+n! public class FabPlus { int index; long sum = 1; public long fabPlus(int index) { if (index == 1) { return 1; } sum += index * fabPlus(index - 1); //sum作为每一次函数fabPlus被调用时的累加器s return index * fabPlus(index - 1); } public static void main(String args[]) { FabPlus a = new FabPlus(); a.fabPlus(4); //测试1!+2!+3!+4! System.out.println(a.sum); } }
public int method(int i){ if(i==1){ return 1; }if(i==2){ return 3; } return i*(method(i-1)-method(i-2))+method(i-1); }
{
if (n < 0){ return -1;
}
if (n == 0)
{// 0!=1
return 1;
}
else if (n == 1)
{// 退出递归的条件
return 1; }
else {// 满足进行递归的条件
return n * doFactorial1(n - 1);
}
}
{
if(n > 0){
return n * doFactorial1(n - 1);
}
elst if (n == 0)
{
return 1;
}
return -1;
} public static int doSum(int n)
{
if(n>1)
{
return doSum(n-1)+doFactorial1(n);
}
if(n==1)
return 1;
else
return -1;
}
public class A{
public static int doFactorial(int n,int sum) {
if (n < 0){
return -1;
}
if (n == 0) {
// 0!=1
return 1;
} else if (n == 1) {
System.out.println(sum+1);
// 退出递归的条件
return 1;
}
else {// 满足进行递归的条件
sum=sum+n*doFactorial(n-1,0);
return n *doFactorial(n - 1,sum);
}
}
public static void main(String [] args){
System.out.println(doFactorial(5,0));
}
}
public static void main(String[] args) {
System.out.println(doFactorial(5).get("sum"));
}
static HashMap doFactorial(int n) {
HashMap map = new HashMap();
if(n == 1) {
map.put("sum", new Integer(1));
map.put("value",new Integer(1));
} else {
int value = Integer.parseInt(doFactorial(n - 1).get("value").toString());
int sum = Integer.parseInt(doFactorial(n - 1).get("sum").toString());
map.put("sum", new Integer(n*value + sum));
map.put("value", new Integer(n *value));
}
return map;
}
}
已经经过测试,结果正确
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
int n = 0;
int sum = 0;
System.out.print("请输入n的值:");
n = new Scanner(System.in).nextInt();
Digui dg = new Digui();
sum = dg.digui(n);
System.out.println(sum);
} public int digui(int n) {
if(n <= 0) return 0;
int x = 1;
for(int i = 1; i<=n; i++ ) {
x *= i;
}
return x+digui(n-1);
}
}
{
if(n==1)return 1;
if(n==2)return 3;
return (n+1)*sumF(n-1)-n*sumF(n-2);
}
System.out.println(sumF(4));
程序运行结果:33
{
if (n < 0){ return -1;
}
if (n == 0)
{// 0!=1
return 1;
}
else if (n == 1)
{// 退出递归的条件
return 1; }
else {// 满足进行递归的条件
return n + doFactorial1(n - 1);
}
}
public class FabPlus {
int index;
long sum = 1;
public long fabPlus(int index) {
if (index == 1) {
return 1;
}
sum += index * fabPlus(index - 1); //sum作为每一次函数fabPlus被调用时的累加器s
return index * fabPlus(index - 1);
}
public static void main(String args[]) {
FabPlus a = new FabPlus();
a.fabPlus(4); //测试1!+2!+3!+4!
System.out.println(a.sum);
}
}
if(i==1){
return 1;
}if(i==2){
return 3;
}
return i*(method(i-1)-method(i-2))+method(i-1);
}