//求 m*n!+(m-1)*(n-1)!+……+
package butone.cs;
public class jc
{
// 计算m的阶层!!!!!!!!!!!!
public jc(){
}
public int f1(int m){
int sum=0;
try{
if(m<=1){
sum=1;
}else{
sum=m*f1(m-1);
}
}catch(Exception e){
e.printStackTrace();
}
return sum;
}
public int f2(int n,int m){
int sum2=0;
int k=n;
try{
for(int i=1;i<=n;i++){
sum2+=k*f1(m);
--k;
System.out.println("2222222 n="+n);
--m;
}
}catch(Exception e){
e.printStackTrace();
}
return sum2;
}
public static void main(String str[]){
jc JC = new jc();
int sum = JC.f2(3,4);
// int sum2=JC.f1(3);
System.out.println("11111111111 sum2=="+sum);
}
}
//完数
public class Wanshu
{
public static void main(String[] args)
{
int s;
for(int i = 1; i <= 1000; i++) //i 为一到一千的数
{
s = 0;
for(int j = 1; j < i; j++){
if(i % j == 0){
s = s + j;
}
else{
continue;
}
if(s == i)
System.out.print(i + " ");
}
}
System.out.println();
}
}
package butone.cs;
public class jc
{
// 计算m的阶层!!!!!!!!!!!!
public jc(){
}
public int f1(int m){
int sum=0;
try{
if(m<=1){
sum=1;
}else{
sum=m*f1(m-1);
}
}catch(Exception e){
e.printStackTrace();
}
return sum;
}
public int f2(int n,int m){
int sum2=0;
int k=n;
try{
for(int i=1;i<=n;i++){
sum2+=k*f1(m);
--k;
System.out.println("2222222 n="+n);
--m;
}
}catch(Exception e){
e.printStackTrace();
}
return sum2;
}
public static void main(String str[]){
jc JC = new jc();
int sum = JC.f2(3,4);
// int sum2=JC.f1(3);
System.out.println("11111111111 sum2=="+sum);
}
}
//完数
public class Wanshu
{
public static void main(String[] args)
{
int s;
for(int i = 1; i <= 1000; i++) //i 为一到一千的数
{
s = 0;
for(int j = 1; j < i; j++){
if(i % j == 0){
s = s + j;
}
else{
continue;
}
if(s == i)
System.out.print(i + " ");
}
}
System.out.println();
}
}
本文介绍了一种使用递归与循环相结合的方法来计算特定形式的阶乘表达式,并通过Java代码实现了m*n!+(m-1)*(n-1)!+...的计算过程。此外,还提供了一个寻找完美数的示例程序。
5467

被折叠的 条评论
为什么被折叠?



